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

标签 insert hive impala

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

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

表1(水果): 苹果 字符串橙子 字符串 葡萄 猕猴桃 字符串

表 2(水果和蔬菜): 胡萝卜 字符串猕猴桃 字符串

我想要一个类似于以下内容的插入语句:

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;

感谢任何帮助。

注意。如果更简单的话也可以使用 Impala。

最佳答案

使用插入覆盖时请小心,因为它将替换表中的任何现有数据。正如您所说,其中一张表包含大量数据。

针对您的问题,您可以执行以下操作:

插入餐 table 水果和蔬菜(梨、猕猴桃) 选择梨、猕猴桃 来自水果;

请注意 insert into 子句中梨和猕猴桃的大小写(首选小写),因为 Hive 区分大小写。

关于将数据从另一个表插入到 HIVE 中的选定列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282106/

相关文章:

hadoop - 由于 UTC 时间, hive 中的日期转换问题

mapreduce - 黑斑羚还是 hive ?

bash - 使用Impala在Bash数组中获取HBase列

hdfs - Cloudera 黑斑羚 : How does it read data from HDFS blocks?

php 和 mysql db 从 Json 文件插入

php - 如何使用 MySQL 和 PHP 执行多对多插入?

c++ - 我可以创建 map <string,map<string, int[2]>> 吗?

MySQL INSERT INTO 从多个表中选择

sql - HIVE表格式如何查找给定的数据输入?

sql - 如何在不同的子句中执行 CASE 语句?