在单列上应用 Pig UDF 并自动生成所有其他列

Apply Pig UDF on single column and automatically generate all other columns

我有一个 Pig UDF,可以将我的管道分隔数据文件中的 Ebcidic 字符转换为 ASCII。 我有数百列,我希望我的 UDF 应用于第 70 列。 如何在该特定列上应用 UDF 并将列数据替换为数据集中的 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() as txt:chararray;
DUMP B;

如果我们像上面那样调用脚本,我只会得到转换后的列作为结果的一部分。如何获取所有列以及应用的 udf 列。

感谢任何帮助。

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

B = FOREACH A GENERATE [=10=] .. , Ebc2Asc() as txt:chararray,  .. ;