0

以下に説明するように、これは私の入力です。

({(Fish M.),(Fish M.),(Fish M.),(Fish M.),(Fish M.)},{(Acaso J.),(Acaso J.),(Acasso J. ),(Acaso J.),(Acaso J.)},{(2007 年 8 月 23 日),(2007 年 8 月 23 日),(2007 年 8 月 23 日),(2007 年 8 月 23 日),(8 /23/2007)},{(99.84002222685783),(58.173357215875676),(PSL),(41.66666501098216),(EXW)})

次のような出力を生成するために、1 番目と 2 番目のバッグを個別に実行して、それぞれ 1 つの結果を取得したいと思います。

(Fish M.、Acaso J.、2007 年 8 月 23 日、99.84002222685783、58.173357215875676、PSL、41.66666501098216、EXW)

4

1 に答える 1

2

このスクリプトは機能するはずです。簡潔にするために、エントリの最後のバッグは無視しました。

rr = load 'data/pig/input/Pig_DataSets/six' using CustomLoadFunction() as (one:bag{tup1:(c1:chararray)},two:bag{tup2:(c2:chararray)},three:bag{tup3:(c3:chararray)});
tt = foreach rr {
    mm = two;
    nn = distinct mm;
    oo = one;
    pp = distinct oo;
    generate three,pp,nn;
    };

デフォルトのローダーは機能しないため、カスタム ロード関数を使用する必要がある場合があります (データ クレンジングを行わない限り)。この投稿では、シナリオに適したカスタム ローダーについて説明します。

于 2015-05-18T03:56:16.433 に答える