【发布时间】:2018-04-17 15:01:04
【问题描述】:
我有一些高度定制的处理逻辑,我想用 C++ 实现。 Hadoop Streaming 使我能够将 C++ 编码的逻辑集成到 MapReduce 处理管道中。我想知道我是否可以对 Apache Spark 做同样的事情。
【问题讨论】:
标签: apache-spark hadoop mapreduce hadoop-streaming
我有一些高度定制的处理逻辑,我想用 C++ 实现。 Hadoop Streaming 使我能够将 C++ 编码的逻辑集成到 MapReduce 处理管道中。我想知道我是否可以对 Apache Spark 做同样的事情。
【问题讨论】:
标签: apache-spark hadoop mapreduce hadoop-streaming
最接近(但不完全等效)的解决方案是RDD.pipe 方法:
将由管道元素创建的 RDD 返回到分叉的外部进程。通过对每个分区执行一次给定进程来计算生成的 RDD。每个输入分区的所有元素都作为由换行符分隔的输入行写入进程的标准输入。生成的分区由进程的标准输出输出组成,标准输出的每一行导致输出分区的一个元素。即使是空分区也会调用一个进程。
可以通过提供两个函数来自定义打印行为。
Spark test suite 提供了许多使用示例。
【讨论】: