无法执行:配置单元插入到从不同表架构选择

vmpqdwk3  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(219)

在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的方式来实现。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题