如何从map
字段中提取所有密钥?
我有一个元组包,其中一个字段是包含HTTP标头(及其值)的地图。我想为HTTP标题创建一组所有可能的键(在我的数据集中)并计算我看过它们的次数。
理想情况下,如:
A = LOAD ...
B = FOREACH A GENERATE KEYS(http_headers)
C = GROUP FLATTEN(B) BY $0
D = FOREACH C GENERATE group, COUNT($0)
(没有测试它,但它说明了这个想法..)
我该怎么办?如果我可以从bag
中提取map
个密钥,它实际上会解决它。我只是在piglatin的文档中找不到这样的函数。
答案 0 :(得分:1)
是的,在Pig中有一个命令可以完成此任务。
示例:强>
/* data */
[a#1,b#2,c#3]
[green#sam,eggs#I,ham#am]
A = load 'data' as (M:[]);
B = foreach A generate KEYSET($0);
dump B
<强>输出:强>
({(b),(c),(a)})
({(ham),(eggs),(green)})