官网的文档声明,pipe管道将pyspark的RDD对象fork给外部进程,然后再返回RDD对象
>>> sc.parallelize(['1', '2', '', '3']).pipe('cat').collect()
[u'1', u'2', u'', u'3']
python代码如下,外部进程为cat命令
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import os
from pyspark import SparkContext
from pyspark import SparkConf
if __name__ == '__main__':
sc = SparkContext()
data = ["hi","hello","how","are","you"]
dataRDD = sc.parallelize(data)
pipeRDD = dataRDD.pipe('cat').collect()
print pipeRDD
再提交任务即测试成功
spark-submit –master=yarn-client xx.py