hadoop - 如何根据 Hive 中的另一个表 b 替换表 a 中的值?

标签 hadoop hive hiveql missing-data

由于 Hive 不支持更新... 所以我想知道如何在 Hive 中实现它。

例如,我有表 A 和表 B,它们与名为 user_id 的键链接。 那么A表的register_date有一些缺失值,那些缺失的情况可以用B表的b_date来填充。

因此,对于每个 user_id,如果缺少 register_date(在表 A 中),那么我想用相应的 b_date 填充它表 B 中的值。

有什么想法吗?非常感谢!

最佳答案

您可以使用 case 语句来这样做: 假设您要更新 table_a 列名称 user_id。

如果 user_id 为 null 那么你想用表 B 的列更新 which b_date 那么你可以通过触发下面的查询来做到这一点:

选择当 a.user_id 为 null 或 len(trim(user_id)==0) 时的情况,然后 b.b_date else a.user_id end as user_id from table_A a join table_B b on a.id=b.id;

关于hadoop - 如何根据 Hive 中的另一个表 b 替换表 a 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38088650/

相关文章:

hadoop - 确保在Kafka Connect中交付一次

hive - 如何处理字符串比较中的分号 ";"?

java - 使用 java 逐行获取 Qubole 数据

regex - 配置单元查询 regexp_extract

hadoop - hive 连接查询

java - Hadoop Map任务:读取指定输入文件的内容

hadoop - HBase 内部如何管理版本?

hadoop - hive :NULL col_name和NULL作为表DDL中的col_name之间的区别

hadoop - 在 Apache Nifi 上运行多个 hive sql

mysql - 在 hive/mysql 中实现 sum_reverse() [Explode table result]