处理空数据类型

Handling Null DataType

我正在使用 Piggybank 的 Over 函数来获取行的延迟

res= foreach (group table by fieldA) {
Aord = order table by fieldB;
generate flatten(Stitch(Aord, Over(Aord.fieldB, 'lag'))) as (fieldA,fieldB,lag_fieldB) ;}

这工作正常,当我进行转储时,我得到了预期的结果,问题是当我想使用 lag_fieldB 进行任何比较或转换时,我遇到了数据类型问题。 如果我做一个描述 returns fieldA: long,fieldB: chararray,lag_fieldB: NULL

我是 PIG 的新手,但我已经尝试转换为 chararray 并使用 ToString(),但我不断收到如下错误:

错误 1052:无法将 bytearray 转换为 chararray

错误 1051:无法转换为字节数组

感谢您的帮助

好的,在查看 Over 函数的代码后,我发现您可以实例化 Over class 来设置 return 类型。对我有用的是:

DEFINE ChOver org.apache.pig.piggybank.evaluation.Over('chararray');
res= foreach (group table by fieldA) {
Aord = order table by fieldB;
generate flatten(Stitch(Aord, ChOver(Aord.fieldB, 'lag'))) as (fieldA,fieldB,lag_fieldB) ;}

现在描述告诉我

fieldA: long,fieldB: chararray,lag_fieldB: chararray

而且我能够按预期使用这些列,希望这可以为其他人节省一些时间。