【问题标题】:Impala: AnalysisException: LEFT OUTER JOIN requires an ON or USING clauseImpala:AnalysisException:LEFT OUTER JOIN 需要 ON 或 USING 子句
【发布时间】:2017-10-13 17:41:02
【问题描述】:

我有一个基于 Parquet 文件的 Impala 表,用于存储视频观看记录。结构是:

VideoSession
    ...
    ...
    accountdata struct <
        ...
        ...
        emailid string
        ...
        ...
    >
    ...
    playbacksegments <
        array <
            struct <
                ...
                ...
                playbackseconds double
                ...
                ...
            >
        >
    >

我想获得每位客户的总播放秒数。我试过了:

select a.accountdata.emailid, sum(b.item.playbackseconds) secs
from VideoSession a left outer join VideoSession.playbacksegments b
group by a.accountdata.emailid;

Impala 还给我:

AnalysisException: LEFT OUTER JOIN 需要 ON 或 USING 子句。

由于这里没有外键/主键关系(应该是建在struct/parent表关系中吧?)我该如何完成这个查询?

【问题讨论】:

    标签: parquet impala


    【解决方案1】:

    当然;我一发布问题就想到了这一点。

    事实证明,如果我删除表别名 a 和 b,则查询有效。对任何人来说,这听起来像是 Impala 中的错误吗?

    这行得通:

    select accountdata.emailid, sum(item.playbackseconds) secs
    from MyTable left outer join MyTable.playbacksegments
    group by accountdata.emailid;
    

    【讨论】:

      猜你喜欢
      • 2021-09-23
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 2020-03-09
      • 1970-01-01
      • 2014-02-07
      • 2017-12-05
      相关资源
      最近更新 更多