2016-11-01 15 views
0

我剛開始學習豬,需要小問題幫助下面的問題。提前致謝 !
對於例如:我有喜歡的輸入:如何在豬的其他欄上使用DISTINCT來執行組合

職業類別名稱

​​

我想知道有多少類型的單一類別的存在。 例如: - 代理有兩種類型,一種是Actress,另一種是Actor。因此,結果將爲2. 面臨的問題:無法使用「職業」列DISTINCT「按類別分組」的輸出。 :(

回答

1

不同的第一,然後分組依據Category.Assuming您已經加載數據到關係A.

負載後,選擇2列。

鮮明的關係

集團通過類別

計數職業每個類別

B = FOREACH A GENERATE Occupation as Occupation,Category as Category; 
C = DISTINCT B; 
D = GROUP C BY $1; 
E = FOREACH D GENERATE group,COUNT(C.Occupation); 
DUMP E; 

Output

+0

面臨以下錯誤,實際的數據有更多的領域,如年份,日期等 產生的原因:org.apache.pig.backend.executionengine.ExecException:ERROR 0:標量在輸出中有多行。第一名:(1999年,演員,1/11/99,代理,邁克爾J.福克斯),第二名:(1999年,喜劇演員,1/12/99,喜劇,桑德拉伯恩哈德)(常見原因:「JOIN」,然後「FOREACH。 GENERATE foo.bar「應該是」foo :: bar「)。 最後它說: 錯誤org.apache.pig.tools.grunt.Grunt - 錯誤1066:無法打開迭代器的別名fin fin是我的最後一個包,因此短名稱'fin'。請幫助,如果你找到時間。 –

+0

@PriyanshuSharma我編輯了腳本並添加了輸出。 –

+0

即使我在發佈提到的錯誤之前也做了這個更正......您的腳本沒有錯......檢查後發現版本兼容性問題。感謝您的幫助,主要問題最終由您的腳本解決。我現在可以照顧其他問題:) –

2

試試這個:

相關問題