更改 pig latin 中列的数据类型

Change datatype of column in piglatin

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

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

我问的原因是因为我试图按 id 分组并对 bats 列求和,但出现错误。我的想法是数据类型不适合求和。现在它是一个 bytearray,我认为它需要是一个 int 才能对它求和请告诉我这是否正确,如果正确,如何执行上述操作。

谢谢

参见 CAST Operators.If 您没有在 LOAD 语句中指定数据类型 Pig 使用默认字节数组作为字段的数据类型。

filtered_batters = FOREACH batters2 GENERATE (int)[=10=] as id, (int) as bats;

filtered_batters = FOREACH batters2 GENERATE [=11=] as id:int,  as bats:int;