我有一个描述各种文章中单词的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)

我想以一种形式获取输出:
猫article_one 0.13515503603605478,article_two 0.4054651081081644
等等。
问题是,如何从中建立一个包含单词字段以及id和tfidf字段的元组的关系?
像这样的东西:
X = FOREACH tfidf_relation GENERATE word, (id, tfidf);

不起作用。正确的语法是什么?

最佳答案

试试这个:

    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)})

我希望这是您要寻找的。

08-25 04:16