2017-10-13 10 views
0

ビデオビューのレコードを格納するParquetファイルに基づいてImpalaテーブルを取得しました。構造は次のとおりです。Impala:AnalysisException:LEFT OUTER JOINにはON句またはUSING句が必要です

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

お客様1人あたりの再生秒数の合計を取得します。私が試した:

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

インパラは戻って私を与える:

AnalysisExceptionは:LEFT OUTER JOINはONまたはUSING句が必要です。

ここには外部キーと主キーの関係はありません(構造体/親テーブルの関係に組み込む必要があります)。このクエリはどのように終了しますか?

答えて

0

もちろんです。私は質問を投稿するとすぐにこれを理解しました。

テーブルエイリアスaとbを削除すると、クエリが機能することが分かります。これはインパラのバグのようなものですか?

これは動作します:

select accountdata.emailid, sum(item.playbackseconds) secs 
from MyTable left outer join MyTable.playbacksegments 
group by accountdata.emailid; 
関連する問題