フィールド内の値の合計の % を計算しようとしています。
たとえば、データ (名前、ct) の場合
(ジョン、1000年) (ダン、2000年) (リズ、2000年)
出力を (name, % of ct to the total) にしたい
(ジョン、.2) (ダン、.4) (リズ、.4)
data = load 'fakedata.txt' as (name:chararray,sqr:chararray,ct:int);
A = foreach data generate name, ct;
A = FILTER A by ct is not null;
B = group A all;
C = foreach B generate SUM(A.ct) as tot;
D = foreach A generate name, ct/(double)C.tot;
dump D;
エラー org.apache.pig.tools.grunt.Grunt - エラー 1000: 解析中にエラーが発生しました。無効なエイリアス: {name: bytearray,ct: int} の C
http://pig.apache.org/docs/r0.10.0/basic.html セクションのコード例 - 「スカラーへの関係のキャスト」で指定されている方法を正確に従っています
Dump C と言うと、出力は 5000 として正しく生成されます。したがって、D に問題があります。どんな助けも大歓迎です。