馬鹿でかいデータを2回なめたくないでござる! という話。SQLなら WITH ROLLUP で一発なんだけどHiveでは現状サポートされていない。(hive 0.9.x or before)
select x,sum(y) group by x と select sum(y) を出すのに同じデータセットを2回舐めたくない、だれか神のごとき救いの手を
@tagomoris x が null にならないなら、SELECT xn, SUM(y) FROM t LATERAL VIEW explode(array(x,null)) e as xn group by xn でイケるはず
2012-11-22 12:54:45 via YoruFukurou to @tagomoris
explode() を使うことで内部的にはデータが複製される(が、すぐ集計にかけられるので特に問題ない)。
注意点: xがnullにならないこと
frsyuki++
なお結果をINSERTする場合なら multiple insert が使える。