我可以使用"过滤'在hadoop中使用Map结构 - PIG?

时间:2013-09-01 09:07:27

标签: hadoop apache-pig

证明有一个像,,,

的地图

map.text

[key1#v1]
[key2#v2]
[key3#v3]

然后,如果我试图找到'key of'key2'',

A = load ‘map.text’ as (M:map[]);
B = foreach A generate M#'key2';
C = filter B by $0!='';     // to get rid of empty value like (), (), ().
dump C;

还有其他方法可以找到key2吗?只使用'过滤器'。

thxs ya。

1 个答案:

答案 0 :(得分:0)

无需GENERATE字段,然后在FILTER中使用它;您可以将其包含在FILTER语句中以开头:

A = load 'map.text' as (M:map[]);
B = filter A by M#'key2' != '';
dump B;

在您的数据上,这会返回一条记录:

([key2#v2])

作为旁注,如果空字符串是有效值,则您可能更喜欢使用的标准是by M#'key2' is not null