如何将多个表的结果写入配置单元中的单个表?
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 中执行上述查询时抛出解析失败异常。 您能否更新问题并提供更多详细信息,包括完整的错误消息、表定义等...以上是关于如何将多个表的结果写入配置单元中的单个表?的主要内容,如果未能解决你的问题,请参考以下文章