Pig ERROR 1075:从UDF收到一个bytearray。无法确定如何将bytearray转换为字符串

时间:2017-02-15 03:42:16

标签: apache-pig bigdata

我是猪的新手。我在数据集中有一些数据,如下所示。

数据:

(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收到一个bytearray。无法确定   如何将bytearray转换为字符串

我甚至尝试按照以下方式投射到chararray。

C= FILTER B BY (chararray)leads != '';

但它不起作用。

1 个答案:

答案 0 :(得分:1)

无需投射。这将有效。在该组之后按$ 0和COUNT($ 0)获得输出。

C = FILTER B BY leads is not null;

enter image description here

D = GROUP C BY $0;
E = FOREACH D GENERATE group,COUNT(C);
DUMP E;

enter image description here