1

さまざまな記事の単語の tf-idf 値を記述したスキーマがあります。その説明は次のようになります。

tfidf_relation: {word: chararray,id: bytearray,tfidf: double}

以下は、そのようなデータの例です。

(cat,article_one,0.13515503603605478)
(cat,article_two,0.4054651081081644)
(dog,article_one,0.3662040962227032)
(apple,article_three,0.3662040962227032)
(orange,article_three,0.3662040962227032)
(parrot,article_one,0.13515503603605478)
(parrot,article_three,0.13515503603605478)

cat article_one 0.13515503603605478、article_two 0.4054651081081644 などの形式で出力を取得したい。問題は、単語フィールドと id および tfidf フィールドのタプルを含むこれからの関係をどのように作成するかです。このようなもの:

X = FOREACH tfidf_relation GENERATE word, (id, tfidf);

動作しません。これの正しい構文は何ですか?

4

2 に答える 2

1

これを試して:

    t = LOAD 'input/file' USING PigStorage(',') as (word: chararray,id: bytearray,tfidf: double);
    u = group t by word;
    dump u;

出力は次のようになります。

    (cat,{(cat,article_two,0.4054651081081644),(cat,article_one,0.13515503603605478)})
    (dog,{(dog,article_one,0.3662040962227032)})
    (apple,{(apple,article_three,0.3662040962227032)})
    (orange,{(orange,article_three,0.366204096222703)})
    (parrot,{(parrot,article_three,0.13515503603605478),
    (parrot,article_one,0.13515503603605478)})

これがあなたが探しているものであることを願っています。

于 2014-06-26T09:10:39.400 に答える
0
X = FOREACH tfidf_relation GENERATE word, {(id, tfidf)};

これはおそらくあなたが必要とするものです。

于 2011-04-18T20:59:34.680 に答える