PIG - 我可以将byteArray转换为元组

时间:2013-08-29 16:26:31

标签: java hadoop protocol-buffers apache-pig

我正在处理一个序列文件。序列文件中的每条记录都是一个protobuf。

在PIG中我使用elephantbird的SequenceFileLoader和ProtoBuf Converter加载序列文件。

所以,现在我可以看到一个代表protobuf对象的元组。让我们说:

objects: {object: {id: long, name: chararray, nested-object: bytearray}....}.

嵌套对象是另一个具有两个属性(prop1,prop2)的protobuf。

现在,有人可以帮我弄清楚如何将嵌套对象的bytearray转换为另一个元组(prop1,prop2)(不确定元组是否是正确的术语)?

2 个答案:

答案 0 :(得分:2)

不确定这是否是最好的方法,但我通过在这些instructions之后编写UDF来解决问题。

我的UDF将采用DataByteArray并返回一个元组。

然后在猪:

nestedObjects = FOREACH objects GENERATE MY_UDF_CONVERTER(nested_object);

答案 1 :(得分:0)

使用我们的数组创建ByteArrayInputStream,然后将其提供给转换器。