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

时间:2017-10-13 17:41:02

标签: parquet impala

我有一个基于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表关系中,对吗?)如何完成此查询?

1 个答案:

答案 0 :(得分:0)

当然;我在发布问题后立即想到了这一点。

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

这有效:

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