6.5 与外部程序间的管道

如果 Scala、Java 以及 Python 都不能实现你需要的功能,那么 Spark 也为这种情况提供了一种通用机制,可以将数据通过管道传给用其他语言编写的程序,比如 R 语言脚本。

Spark 在 RDD 上提供 pipe() 方法。Spark 的 pipe() 方法可以让我们使用任意一种语言实现 Spark 作业中的部分逻辑,只要它能读写 Unix 标准流就行。
通过 pipe() ,你可以将 RDD 中的各元素从标准输入流中以字符串形式读出,并对这些元素执行任何你需要的操作,然后把结果以字符串的形式写入标准输出——这个过程就是 RDD 的转化操作过程。