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

Create custom writable key/value type in python for Hadoop Map Reduce?

我在 Hadoop MR 上工作了很长一段时间,我创建并使用了自定义(扩展)Writable 类,包括 MapWritable。现在我需要将我在 Java 中写的同一个 MR 翻译成 Python。我没有 python 方面的经验,现在正在为此探索各种库。我正在研究一些选项,例如 PydoopMrjob。但是,我想知道这些库是否包含创建类似自定义 Writable 类 的选项以及如何创建它们。如果不是,有什么可能的替代方法可以做到这一点?

在 Pydoop 中,对自定义 Hadoop 类型的显式 支持仍然是 WIP。换句话说,现在我们并没有让用户的事情变得简单,但可以通过一些工作来完成。几点建议:

  • Pydoop 已经包含自定义 Java 代码,与 Python 包一起自动安装为 pydoop.jar。我们根据需要将这个额外的 jar 传递给 Hadoop。添加更多 Java 代码是将源放在 src/ 中并将其列在 setup.py

  • 中的 JavaLib.java_files
  • 在 Python 方面,您需要新类型的反序列化器。例如参见 [​​=15=] 中的 LongWritableDeserializer

希望这对您有所帮助。