2014-06-21 30 views
0

我有a custom Pig loader這樣的:豬:訪問內的元組字段用於過濾

A = LOAD 'myfile' USING myudf_loader() 

A包含:

((key1, val1), (key2, val2), (key3, val3), ...) 

也就是說A具有包含存儲在鍵 - 值對的外元組內部元組。

我沒有使用地圖,因爲地圖需要key values within a relation must be unique。我擁有的鑰匙不一定非得是唯一的。

關鍵是chararrays,而值可以是chararrays,intsfloats

我想訪問A的內部元組,以及這些元組中的(鍵,值)對。

例如,我想要FILTER的密鑰A,使剩下的唯一字段是key = "city"value = "New York City"

例輸入:過濾,並保存在B

DUMP A; 
(("city", "New York City"), ("city", "Boston"), 
("city", "Washington, D.C."), ("non-city-key", "non-city-value"), 
("city", "New York City"), ("non-city-key", "non-city-value")) 

輸出示例:

DUMP B; 
("city", "New York City") 
("city", "New York City") 

回答

0

我沒有完整的Pig Latin腳本。

但是你可以實現使用下面的想法

grouped_records = GROUP records By Key; 

filtered_records = FILTER grouped_records By group='CITY' 

Dump filtered_records 

乾杯 納格

+0

謝謝你,但是這個答案並不說明了如何訪問內的元組。 ((key1,val1),(key2,val2),...,(keyn,valn))中的key1一樣。 – user3662937