我在 Hadoop MR 上工作了很长一段时间,我创建并使用了自定义(扩展)Writable
类,包括 MapWritable
。现在我需要将我用 Java 编写的同一个 MR 翻译成 Python。我没有使用 python 的经验,现在正在探索各种库。我正在研究一些选项,例如 Pydoop 和 Mrjob。但是,我想知道这些库是否包含创建类似自定义 Writable
类的选项以及如何创建它们。如果不是,有什么可能的替代方案可以做到这一点?
最佳答案
在 Pydoop 中,对自定义 Hadoop 类型的显式支持仍然是WIP .换句话说,现在我们并没有让用户的事情变得简单,但可以通过一些工作来完成。几点建议:
Pydoop 已经包含自定义 Java 代码,与 Python 包一起自动安装为
中的pydoop.jar
。我们根据需要将这个额外的 jar 传递给 Hadoop。添加更多 Java 代码是将源代码放在src/
中并将其列在setup.py
JavaLib.java_files
中在 Python 方面,您需要新类型的反序列化器。例如,参见
pydoop.mapreduce.pipes
中的LongWritableDeserializer
。
希望这对您有所帮助。
关于python - 在 python 中为 Hadoop Map Reduce 创建自定义可写键/值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643536/