java—在单个列上应用pig udf并自动生成所有其他列

tp5buhyn  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(372)

我有一个pig udf,它将ebcidic字符转换为管道分隔数据文件中的ascii。我有数百列,我想我的自定义项应用于第70列。如何在特定列上应用自定义项,并在数据集中将列数据替换为ascii。

REGISTER pigudf-0.0.1.jar;
DEFINE Ebc2Asc com.z.pig.udf.Ebc2Asc;

A = LOAD '/user/T4/cobDump.txt' USING PigStorage('|');
B = FOREACH A GENERATE Ebc2Asc($71) as txt:chararray;
DUMP B;

如果我们像上面那样调用脚本,我只得到转换后的列作为结果的一部分。如何获得所有列以及应用的自定义项列。
谢谢你的帮助。

1dkrff03

1dkrff031#

已经有一段时间了,但听起来好像您想使用范围投影来自动生成其他列。它应该看起来像:

B = FOREACH A GENERATE $0 .. $70, Ebc2Asc($71) as txt:chararray, $72 .. ;

相关问题