2013-09-01 41 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

相關問題