しばらく前に作った Hive ではない処理で書かれた集計処理を新しく Hive で書き直そうとしている。
旧処理と新処理で、同じ結果が得られるように調整しているのだけど、何かの条件が違うのか、結果の件数にだいぶ差が出てしまっていた。
なんだろう?と思って、中間テーブルの状況を調べたり、さらに前段で集計前の raw データ的なところで調査をしたりしていたのだけど、結局、最終出力直前の JOIN の方向違いだと言うことが分かった。このテーブルの並びだと、LEFT JOIN じゃなくて RIGHT になるべきだったのだ。
LEFT を RIGHT に置き換えれば終わりなのだけど、個人的には LEFT JOIN が好きなので、JOIN するテーブル名の順番を入れ替えることで対応した。
なんとなくだけど RIGHT より LEFT が好きな人のほうが多いんじゃないかなー!?