更改piglatin中的列数据类型

时间:2016-11-27 20:07:28

标签: hadoop apache-pig

我和猪拉丁有关系。有很多列,所以我不想在加载关系时指定数据类型。事后是否有办法改变它?

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分组并对bats列求和,我收到错误。我的想法是数据类型不适合求和。现在它是一个bytearray,我认为它需要一个int给我总结它请让我知道这是否正确,如果是这样,如何做到这一点。

由于

1 个答案:

答案 0 :(得分:3)

请参阅CAST运算符。如果未在LOAD语句中指定数据类型,则使用默认的bytearray作为字段的数据类型。

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;