2016-11-27 61 views
0

我在拉丁文中有一個關係。有很多列,所以我不想在加載關係時指定數據類型。事後有沒有辦法改變它?更改明膠色譜柱的數據類型

batters = LOAD 'hdfs:/home/ubuntu/pigtest/Batting.csv' using PigStorage(','); 
filtered_batters = FOREACH batters2 GENERATE $0 as id, $5 as bats; 
describe filtered_batters; 
filtered_batters: {id: bytearray, bats: bytearray} 

我問的原因是因爲我試圖通過id進行分組並總結蝙蝠列,並且出現錯誤。我的想法是數據類型不適合求和。現在這是一個bytearray,我認爲它需要一個整數,我可以總結它請讓我知道如果這是正確的,如果是這樣,如何做到上述。

感謝

回答

2

CAST Operators.If你不指定LOAD語句豬的數據類型使用默認的字節組的數據類型的字段。

filtered_batters = FOREACH batters2 GENERATE (int)$0 as id, (int)$5 as bats; 

OR

filtered_batters = FOREACH batters2 GENERATE $0 as id:int, $5 as bats:int; 
+0

謝謝,這個作品! – mangodreamz