在python中为Hadoop Map Reduce创建自定义可写键/值类型?

时间:2018-08-01 23:23:19

标签: python hadoop mapreduce

我从事Hadoop MR已有相当一段时间,并且创建并使用了自定义(扩展)Writable类,包括MapWritable。现在,我需要将用Java编写的MR转换为Python。我没有python的经验,现在正在探索相同的各种库。我正在研究一些选项,例如 Pydoop Mrjob 。但是,我想知道这些库是否包含创建类似的自定义Writable类的选项以及如何创建它们。如果没有,那么有什么其他替代方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

在Pydoop中,对自定义Hadoop类型的显式支持仍为WIP。换句话说,目前我们并没有为用户简化事情,但是可以通过一些工作来完成。几个指针:

  • Pydoop已包含自定义Java代码,并与Python软件包一起自动安装为pydoop.jar。我们根据需要将此额外的jar传递给Hadoop。添加更多Java代码只是将源放置在src/中,并将其列出在JavaLib.java_files的{​​{1}}中

  • 在Python方面,您需要新类型的反序列化器。例如,请参见setup.py中的LongWritableDeserializer

希望这会有所帮助。