S-JIS[2011-08-13/2012-01-21] 変更履歴

Apache Pig

Apache Pig(ピッグ)は、Hadoop(HDFS)上のファイルを独自言語で操作(MapReduceを実行)できるツール。


概要

Pigは(Hiveと同じく)HDFS上のファイルを操作できる。いわばOracleのSQL*Plusのような対話型ツール。
HiveがHiveQLというSQLに似た言語を使う(SQLっぽく書けるのを目指している)のに対し、PigはPig Latin(ピッグラテン)という独自言語を使う。

独自言語なので覚えるのが大変かと思いきや、意外と簡単(構文が意外と少ない)。
Hadoop徹底入門』を見ながら1日(8時間)位かければほぼ全ての構文を試せる。
そして処理の記述方法が(Scala等の)関数型言語のコレクション操作の考え方と似ていて分かりやすい。(→WordCountでの比較

HiveはSQLに似ていて学習コストが低いが、細かい点は異なるしSQLよりは貧弱なので、むしろ(思い込みを解くのに)苦労することがある。
特に一旦記述した処理を後から変更しようとした場合、HiveよりもPigの方が(どこで何をしようとしているのか把握しやすいので)修正もしやすそう。


Pigでのデータ処理の流れ

Pigを試すのは以下の様な順序になるだろう。

  1. LOADによる入力ファイル指定および項目定義
  2. DESCRIBEによる処理定義確認
  3. DUMPによる処理結果確認(実際の処理を実行し、結果をコンソールに出力する)
  4. STOREによるファイルへのデータ出力

WordCountの例


技術メモへ戻る
メールの送信先:ひしだま