2013-09-01 43 views
0

provied有像一个地图,,,我可以使用”过滤器‘与地图结构的Hadoop - PIG

map.text

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

然后,如果我试图找到’价值“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雅。

回答

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

相关问题