HadoopでCSVファイルの色々な項目をキーとして集計するサンプルを作ってみた。
Hadoopでというか、Pig・Hive・AsakusaFW(WindGate)・Cascadingでも作ってみたんだけど。
前回のWordCountの速度比較ではAsakusaFWは残念な結果になっていたけれど、今回はAsakusaFWの実行速度が一番速かった。
AsakusaFWの複数ジョブにまたがる最適化が効いた感じ。素晴らしい!(ステマw)
ちなみにWindGateではローカルにファイルが出力できるんだけど、UNIX上で動かしたのに、なぜか改行コードがCRLFになってた…。
なもんで、他プロダクトの結果とdiffをとっても一致しない(苦笑)
おかげで改行コードCRを無視する「diff --strip-trailing-cr」というオプションがある事を知ったよw
あと、Hiveはパラメーター渡しが出来ないとかカンマ区切りでの出力を直接はサポートしてないとか、細かいところが気になる(苦笑)
簡単に対応できそうな気がするんだけどな。カンマ区切りとか、需要無いんだろうか?
select文は今までのRDBMSの知識で直感的に書けるから、対話型で使うには便利。やはりバッチで使おうとするのが間違いか。
対話型で使うなら、パラメーター渡しの必要なんてないし。