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

标签 python hadoop mapreduce

我在 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 方面,您需要新类型的反序列化器。例如,参见 pydoop.mapreduce.pipes 中的 LongWritableDeserializer

希望这对您有所帮助。

关于python - 在 python 中为 Hadoop Map Reduce 创建自定义可写键/值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643536/

相关文章:

python - 将自定义按钮添加到 django 管理面板

python - IO错误: No files found based on the file pattern

java - Hadoop:Mapreduce - 数据总和 (Java)

java - 将对象写入hadoop hdfs问题

python - 从元组生成字符串

python - 如何将 python datetime.datetime 转换为列表

java - hadoop倒排索引计数

python - 过滤器生成的 PySpark DataFrame - 它存储在哪里?

java - 如何使用JAVA访问Hadoop MapReduce中Iterable <DoubleWritable>的第一个元素?

javascript - 使用map()和/或reduce()来简化Node(或原生JavaScript)中的forEach()语句