1

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

在 PIG 中,我使用大象鸟的 SequenceFileLoader 和 ProtoBuf 转换器加载序列文件。

所以,现在我可以看到一个表示 protobuf 对象的元组。比方说:

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

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

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

4

2 回答 2

2

不确定这是否是最好的方法,但我通过按照这些说明编写 UDF 解决了这个问题。

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

然后在猪:

nestedObjects = FOREACH objects GENERATE MY_UDF_CONVERTER(nested_object);
于 2013-08-29T19:12:46.790 回答
0

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

于 2013-08-29T16:40:06.353 回答