Pig ERROR 1075:从 UDF 接收到一个字节数组。无法确定如何将字节数组转换为字符串
Posted
技术标签:
【中文标题】Pig ERROR 1075:从 UDF 接收到一个字节数组。无法确定如何将字节数组转换为字符串【英文标题】:Pig ERROR 1075: Received a bytearray from the UDF. Cannot determine how to convert the bytearray to string 【发布时间】:2017-02-15 03:42:15 【问题描述】:我是猪新手。我在数据集中有一些数据,如下所示。
数据:
(U,Y,,,,,,)
(U,U,U,U,W,,,)
(U,U,U,U,U,Y,,)
我需要将其转换为单独的组行,不包括空白字段。
输出应该如下所示
(U,10)
(Y,2)
(W,1)
我已经尝试了下面的代码。
B = foreach data generate FLATTEN(TOBAG(*)) as leads;
在上述语句之后,所有列都转换为具有一个字段的行,我想过滤空白行。所以我使用下面的。
C= FILTER B BY leads != '';
但它给出了以下错误
Pig ERROR 1075:从 UDF 接收到一个字节数组。无法确定 如何将字节数组转换为字符串
我什至尝试如下转换为 chararray。
C= FILTER B BY (chararray)leads != '';
但它不起作用。
【问题讨论】:
【参考方案1】:无需强制转换。这将起作用。在 $0 和 COUNT($0) 分组之后得到输出。
C = FILTER B BY leads is not null;
D = GROUP C BY $0;
E = FOREACH D GENERATE group,COUNT(C);
DUMP E;
【讨论】:
以上是关于Pig ERROR 1075:从 UDF 接收到一个字节数组。无法确定如何将字节数组转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
Pig UDF 抛出错误 Caught error from UDF: GetCounty, Out of bounds access [1]
在 Pig Latin 中加载 UDF 时发生 ClassCastException 错误