2015-02-08 58 views
0

我正在試圖計算Pig中關係中不同組的最大值。該關係具有三列patientid,featureid和featurevalue(全部爲int)。 I組的基礎上的關係和FEATUREID要計算每個組的最大特徵值,繼承人的代碼:在Apache Pig(Hadoop)中使用MAX時出錯

grpd = GROUP features BY featureid; 
DUMP grpd; 
temp = FOREACH grpd GENERATE $0 as featureid, MAX($1.featurevalue) as val; 

它給我無效標投影:grpd異常。我在不同的論壇上看過,MAX爲這種功能提供了「包」格式,但是當我把grpd轉儲出來時,它會向我展示一種包格式。這裏是轉儲輸出的一小部分:

(5662,{(22579,5662,1)}) 
(5663,{(28331,5663,1),(2624,5663,1)}) 
(5664,{(27591,5664,1)}) 
(5665,{(30217,5665,1),(31526,5665,1)}) 
(5666,{(27783,5666,1),(30983,5666,1),(32424,5666,1),(28064,5666,1),(28932,5666,1)}) 
(5667,{(31257,5667,1),(27281,5667,1)}) 
(5669,{(31041,5669,1)}) 

這是什麼問題?

回答

0

問題同列尋址,繼承人正確的工作代碼:

grpd = GROUP features BY featureid; 
temp = FOREACH grpd GENERATE group as featureid, MAX(features.featurevalue) as val;