更改piglatin中列的数据类型

lmyy7pcs  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(413)

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

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,我来求和,请让我知道这是否是正确的,如果是,如何做上述。
谢谢

w8ntj3qf

w8ntj3qf1#

请参阅cast operators。如果未在load语句中指定数据类型,pig将使用默认的bytearray作为字段的数据类型。

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

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

相关问题