我们有一个自定义 Writable Values 对象的 SequenceFile,该对象本质上等同于 Pig 中的复杂包数据类型。
有没有一种方便的方法,我们可以编写一个自定义函数,将 hadoop Writable 对象转换为 bag 数据类型,然后使用 pig 脚本对其进行处理?
我们有一个自定义 Writable Values 对象的 SequenceFile,该对象本质上等同于 Pig 中的复杂包数据类型。
有没有一种方便的方法,我们可以编写一个自定义函数,将 hadoop Writable 对象转换为 bag 数据类型,然后使用 pig 脚本对其进行处理?
一种选择是查看大象鸟——如果你向下滚动这个 github 页面到 README 部分,它有一个关于 Pig 的部分:
猪
- 包括用于将元组转换为可写的转换器接口,反之亦然
我从来没有使用过它,我想你必须自己实现一些代码(可能是com.twitter.elephantbird.pig.util.WritableLoadCaster
抽象类的扩展,并SequencedFileLoader
使用你的加载器实现来加载你的序列文件