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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中为Hadoop Map Reduce创建自定义可写键/值类型?相关的知识,希望对你有一定的参考价值。

我已经在Hadoop MR上工作了很长时间,我创建并使用了自定义(扩展)Writable类,包括MapWritable。现在我需要将我用Java编写的相同MR翻译成Python。我没有python的经验,现在正在探索各种库。我正在研究像Pydoop和Mrjob这样的选择。但是,我想知道这些库是否包含创建类似的自定义Writable类以及如何创建它们的选项。如果没有,有什么可能的替代方案可以做同样的事情?

答案

在Pydoop中,对自定义Hadoop类型的明确支持仍然是WIP。换句话说,现在我们并没有让用户轻松工作,但可以通过一些工作来完成。几个指针:

  • Pydoop已经包含自定义Java代码,与Python包一起自动安装为pydoop.jar。我们根据需要将这个额外的jar传递给Hadoop。添加更多Java代码是将源放在src/中并将其列在JavaLib.java_files中的setup.py
  • 在Python方面,您需要针对新类型的反序列化器。比如LongWritableDeserializer中的pydoop.mapreduce.pipes

希望这可以帮助。

以上是关于在python中为Hadoop Map Reduce创建自定义可写键/值类型?的主要内容,如果未能解决你的问题,请参考以下文章

hadoop的企业优化

hadoop解决数据倾斜的方法

Python进阶

python的map和reduce和Hadoop的MapReduce有啥关系

hadoop MapReduce 读取配置参数

Hadoop- MapReduce在实际应用中常见的调优