我有一个基于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表关系中,对吗?)如何完成此查询?
答案 0 :(得分:0)
当然;我在发布问题后立即想到了这一点。
事实证明,如果我删除表别名a和b,查询就可以了。这对任何人来说听起来像是Impala中的一个错误吗?
这有效:
select accountdata.emailid, sum(item.playbackseconds) secs
from MyTable left outer join MyTable.playbacksegments
group by accountdata.emailid;