从另一个表中将数据插入HIVE中的选定列

时间:2015-03-26 15:12:26

标签: insert hive impala

我有2个hive表,一个有很多列和数据,另一个有一些匹配的列有些不匹配。

我希望能够从第一个表中插入数据并指定要插入的列,例如:

表1(水果): 苹果 字符串橙子 字符串 字符串 Grapes 字符串 Kiwi string ;

表2(fruitAndVeg): 字符串胡萝卜 字符串 Kiwi string ;

我希望插入语句接近以下内容:

insert overwrite table fruitAndVeg x (x.Pears, x.kiwi) select y.Pears, y.kiwi from fruit y;

我知道下面的代码是可能的,但我的表中有更多的数据,所以尝试指定列而不是手动插入空值或空字符串:

insert overwrite table fruitAndVeg select y.Pears, emptystring, y.kiwi from fruit y;

感谢任何帮助。

NB。如果更容易,也可以使用Impala。

1 个答案:

答案 0 :(得分:2)

使用Insert overwrite时请小心,因为它会替换表中的所有现有数据。正如你所说,其中一个表包含大量数据。

提出您的问题,您可以执行以下操作:

插入表fruitandveg(梨,猕猴桃) 选择梨,猕猴桃 来自水果;

请注意插入条款中的梨和猕猴桃的情况(首选小写),因为Hive区分大小写。