如何将多个表的结果写入配置单元中的单个表?

Posted

技术标签:

【中文标题】如何将多个表的结果写入配置单元中的单个表?【英文标题】:How to write result from multiple tables to single table in hive? 【发布时间】:2014-02-24 14:06:13 【问题描述】:

我想通过从多个表中选择列来将结果写入单个表。 我想在 hive 中实现如下所示。

SELECT Table0.num,Table1.field1, Table2.field2, Table3.field3, Table4.field4
FROM Table0
FULL OUTER JOIN Table1 ON Table0.num = Table1.num
FULL OUTER JOIN Table2 ON Table0.num = Table2.num
FULL OUTER JOIN Table3 ON Table0.num = Table3.num
FULL OUTER JOIN Table4 ON Table0.num = Table4.num

请建议我应该如何在 hive 中实现这一点?

当我尝试在 hive 中执行上述查询时,出现以下异常。

失败:ParseException 行 2:11 无法识别选择表达式中 '' 'on' 'Table0' 附近的输入

【问题讨论】:

【参考方案1】:

如果我创建一堆这样的表:

create table Table0(num int, Field0 int);
create table Table1(num int, Field1 int);
create table Table2(num int, Field2 int);
create table Table3(num int, Field3 int);
create table Table4(num int, Field4 int);

然后运行您发布的查询就可以了。

OK
Time taken: 38.26 seconds

你运行的是什么版本的蜂巢?是否有可能在发布到 *** 之前修改了查询?

【讨论】:

【参考方案2】:

如果您只是从多个表中选择列而不进行聚合,则无需使用GROUP BY。如果您不想重复行,也可以使用SELECT DISTINCT(而不是GROUP BY)。

【讨论】:

我的错。更新了问题。 当我尝试在 hive 中执行上述查询时抛出解析失败异常。 您能否更新问题并提供更多详细信息,包括完整的错误消息、表定义等...

以上是关于如何将多个表的结果写入配置单元中的单个表?的主要内容,如果未能解决你的问题,请参考以下文章

如何将脚本创建的工作表的名称写入该工作表中的单元格?

如何将配置单元查询结果导出到单个本地文件?

Spark SQL - 无法将所有记录写入配置单元表

如何在单个查询中计算与基表结果匹配的多个表的记录?

如何在 Spark SQL 中使用 snappy 压缩将数据写入配置单元表

Spark - 如何将约 20TB 的数据从 DataFrame 写入配置单元表或 hdfs?