我从事Hadoop MR已有相当一段时间,并且创建并使用了自定义(扩展)Writable
类,包括MapWritable
。现在,我需要将用Java编写的MR转换为Python。我没有python的经验,现在正在探索相同的各种库。我正在研究一些选项,例如 Pydoop 和 Mrjob 。但是,我想知道这些库是否包含创建类似的自定义Writable
类的选项以及如何创建它们。如果没有,那么有什么其他替代方法可以做到这一点?
答案 0 :(得分:0)
在Pydoop中,对自定义Hadoop类型的显式支持仍为WIP。换句话说,目前我们并没有为用户简化事情,但是可以通过一些工作来完成。几个指针:
Pydoop已包含自定义Java代码,并与Python软件包一起自动安装为pydoop.jar
。我们根据需要将此额外的jar传递给Hadoop。添加更多Java代码只是将源放置在src/
中,并将其列出在JavaLib.java_files
的{{1}}中
在Python方面,您需要新类型的反序列化器。例如,请参见setup.py
中的LongWritableDeserializer
。
希望这会有所帮助。