とある地味なブログ

プログラミングとお絵かきに関する雑記。

Apache Pig Latin で定数サンプリング

みんなだいすきPig Latinだよ!

Apache Pig Latinの公式

Pig Latin Basics

ここには以下のようなサンプルが置いてある。

a = load 'a.txt';
b = group a all;
c = foreach b generate COUNT(a) as num_rows;
e = sample a 1000/c.num_rows;

バージョンの問題なのか、自分の環境では、1000/c.num_rowsが0になるようだ。

解決策

これはJavaでありがちな問題だ。(int)/(int) = (int)となり、切り捨てられるやつな。

a = load 'a.txt';
b = group a all;
c = foreach b generate COUNT(a) as num_rows;
e = sample a 1000.0/c.num_rows;

10001000.0として、double型にすればいい。

Apache Pig Latinの公式、もうちょっと頑張ってくれ~