Pigのスクリプトのメモ。
Pigでは、Pig Latinを書いたファイルをスクリプトとして実行できる。
$ pig スクリプトファイル
スクリプトを実行する際、スクリプトファイルの中で変数(パラメーター)を使うことが出来る。
(これはpigの対話モードでは使えない)
/* PigスクリプトによるWordCount */ %declare DIR '/cygwin/tmp' %declare SRC 'hello.txt' %declare DST 'pig/wc/output' rm $DIR/$DST a = load '$DIR/$SRC' as (text:chararray); b = foreach a generate flatten(TOKENIZE(text)) as word; c = group b by word; d = foreach c generate group as word, COUNT(b) as count; store d into '$DIR/$DST';
$ pig -x local スクリプトファイル
パラメーターは、スクリプトの外から指定することが出来る。
/* PigスクリプトによるWordCount */ %declare DST 'pig/wc/output' rm $DIR/$DST a = load '$DIR/$SRC' as (text:chararray); b = foreach a generate flatten(TOKENIZE(text)) as word; c = group b by word; d = foreach c generate group as word, COUNT(b) as count; store d into '$DIR/$DST';
$ pig -x local -param DIR=/cygwin/tmp -param SRC=hello.txt スクリプトファイル
パラメーターを記述したファイルを用意することも出来る。
#パラメーター DIR=/cygwin/tmp SRC=hello.txt
$ pig -x local -param_file パラメーターファイル スクリプトファイル
パラメーターが外部から与えられなかったときのデフォルト値を指定することも出来る。
/* PigスクリプトによるWordCount */ %default DIR '/cygwin/tmp' %default SRC 'hello3.txt' %default DST 'pig/wc/output' rm $DIR/$DST a = load '$DIR/$SRC' as (text:chararray); b = foreach a generate flatten(TOKENIZE(text)) as word; c = group b by word; d = foreach c generate group as word, COUNT(b) as count; store d into '$DIR/$DST';
$ pig -x local -param SRC=hello.txt スクリプトファイル