如何从地图中提取键?

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

【讨论】:

以上是关于如何从地图中提取键?的主要内容,如果未能解决你的问题,请参考以下文章

从 Terraform 地图变量中提取键/值

Oracle 11g JDBC 预取键

如何从谷歌地图路线中提取路线 GPX?

如何从谷歌地图自动完成中提取纬度和经度

如何从scala中的地图中删除键值

如何从scala中的地图更改键