Apache pig 如何将矢量累积到地图中?
我有这样一个别名Apache pig 如何将矢量累积到地图中?,apache-pig,Apache Pig,我有这样一个别名A: {cookie: chararray, keywords: {tuple_of_tokens: (token: chararray)}, weight: double} 其中第2和第3个字段定义为 keywords = TOKENIZE((chararray)$5,','); weight = 1.0/(double)SIZE(keywords); 现在我想做什么 foreach (group A by cookie) generate group.cookie
A
:
{cookie: chararray,
keywords: {tuple_of_tokens: (token: chararray)},
weight: double}
其中第2和第3个字段定义为
keywords = TOKENIZE((chararray)$5,',');
weight = 1.0/(double)SIZE(keywords);
现在我想做什么
foreach (group A by cookie) generate
group.cookie as cookie,
???? as keywords;
而关键字
应该是从关键字映射到权重总和的映射
例如:
1 k1,k2,k3
1 k2,k4
应该变成
1 {k1:1/3, k2:5/6, k3:1/3, k4:1/2}
我已经在使用了,但我愿意接受任何其他选择…我会这么做
A_counts=foreach A生成cookie,扁平化(关键字)作为关键字,1.0/大小(关键字)作为权重代码>
然后
A\u counts\u gr=A组依据(cookie,关键字)代码>和
result=foreach A\u counts\u gr生成扁平化(组)为(cookie,token),sum(A\u counts\u gr.weight)代码>
然后你可以按cookie分组,得到你想要的包…再次按cookie分组后,会有一个包,然后你可以将这个包变成一个带有datafu的映射…描述结果
打印{id:chararray,token:chararray,double}
那里没有映射
(甚至包
)。