在hive中:我尝试在hive中从具有不同模式的不同表中进行数据合并(唯一的区别是可以使用其他具有数据的列)。
table A:
id int, name string, v1 string, v2 string
tbale B:
id int, name string, v1 String
table C:
id int, name string, v1 string, v2 string, v3 string, v4 string
我需要将所有这些表中的数据合并到一个新的“表d”中
table D:
id int, name string, v1 stirng, v2 string, v3 string, v4 string
如何根据表架构中的条件插入源表中的数据,例如如果列存在,则插入该列值,否则为null。
我编写了一个类似于脚本的查询来循环遍历所有表:
insert into table D select id, name, v1,v2,v3,v4 from ${hiveconf:TABLE_NAME};
这将失败,因为它找不到表a中未列出的v3、v4列
由于我必须从数千个不同的表中进行选择,我想在脚本中动态添加一个基于条件的列选择(因为在v1到v4之间有数千个表可以具有不同数量的列),因为单独编写和执行数千个insert-into语句不是一个好的做法。我们如何在sql中实现这一点,所以我可以考虑用hive的方式来实现。
暂无答案!
目前还没有任何答案,快来回答吧!