1

以下は失敗します。

data = FOREACH rawData GENERATE (int) col;
aggregate = FOREACH data GENERATE MIN(col);

上記を機能させることができる方法はありますか?

私はこれを試しました:

data = FOREACH rawData GENERATE 1 dummy, (int) col;
grouped = GROUP data BY dummy;
aggregate = FOREACH grouped GENERATE MIN(data.col)

今私は得る:java.lang.Exception: java.lang.OutOfMemoryError: Java heap space

文字通り 11 行の整数 (1..11) があります...なぜ outOfMemoryError が発生するのかわかりませんか?

コマンドラインからスクリプトを実行していますpig -f myscript.pig

PIG は初めてなので、何か設定する必要がある場合はお知らせください...

4

1 に答える 1

0

を使用する前に、最初にデータをグループ化する必要があるという点で、あなたの直感は正しかったですMINGROUP ALLこの目的のために使用できます:

data = FOREACH rawData GENERATE (int) col;
grouped = GROUP data ALL;
aggregate = FOREACH grouped GENERATE MIN($1);

GROUP操作の後$0、グループ、$1最初の列、$22 番目の列などを含みます。

于 2013-09-19T22:39:54.217 に答える