【问题标题】: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' 附近的输入

【问题讨论】:

    标签: hadoop hive bigdata


    【解决方案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
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我的错。更新了问题。
      • 当我尝试在 hive 中执行上述查询时抛出解析失败异常。
      • 您能否更新问题并提供更多详细信息,包括完整的错误消息、表定义等...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多