如何从地图中提取键?
Posted
技术标签:
【中文标题】如何从地图中提取键?【英文标题】:How to extract keys from map? 【发布时间】:2014-07-08 09:41:35 【问题描述】:如何从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)
(没有测试它,但它说明了这个想法..)
我该如何做这样的事情?如果我可以从map
中提取bag
的键,它实际上会解决它。我只是在 piglatin 的文档中找不到这样的函数。
【问题讨论】:
【参考方案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))
【讨论】:
以上是关于如何从地图中提取键?的主要内容,如果未能解决你的问题,请参考以下文章