我有一个描述各种文章中单词的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 等等。 问题是,如何从中创建包含单词field和id和tfidf字段元组的关系? 像这样:
X = FOREACH tfidf_relation GENERATE word, (id, tfidf);
不起作用。这个的正确语法是什么?
答案 0 :(得分: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)})
我希望这就是你要找的东西。
答案 1 :(得分:0)
X = FOREACH tfidf_relation GENERATE word, {(id, tfidf)};
这可能就是你所需要的。