Spark Pipe调用外部程序
来源:互联网 发布:淘宝退货率多少算正常 编辑:程序博客网 时间:2024/06/13 22:09
spark 中,有种特殊的Rdd,即pipedRdd,提供了调用外部程序如基于CUDA的C++程序,使其能够更快的进行计算。caffe on spark 和tensorflow on spark 也是基于此机制,那么,spark 和 外部程序是怎么交互的呢? 下面通过一个简单的例子验证。
步骤1:创建外部脚本
#!/bin/shecho "Running shell script"while read LINE; do echo ${LINE}!done
步骤2:spark rdd 调用
val data = sc.parallelize(List("hi","hello","how","are","you"))val scriptPath = "/root/echo.sh"val pipeRDD = dataRDD.pipe(scriptPath)pipeRDD.collect()
查看运行结果,发现为:
Array[String] = Array(Running shell script, hi!, Running shell script, hello!, Running shell script, how!, Running shell script, are!, you!)
其中,Running shell script只出现了4次,rdd的count为9,可见有两次共享了一个外部进程。在此推断和RDD并行度有关。
步骤3:调整并行度
dataRDD.repartition(5)
结果为:
Array[String] = Array(Running shell script, are!, Running shell script, hi!, hello!, you!, Running shell script, Running shell script, Running shell script, how!)
Running shell script只出现了5次,rdd的count为10了。
结论
rdd pipe 每个分区,启动一次外部程序,输入通过stdin传入,结果通过stdout传出。
阅读全文
1 0
- Spark Pipe调用外部程序
- Spark Pipe使用方法(外部程序调用方法)
- spark java程序入门(三)外部程序调用
- 程序调用外部程序
- java调用外部程序
- C# 调用外部程序
- Java调用外部程序
- c++ 调用外部程序
- C#调用外部程序
- C#调用外部程序
- VC 调用外部程序
- C#调用外部程序
- SAP 调用外部程序
- SAP 调用外部程序
- [Ruby]调用外部程序
- javascript调用外部程序
- VC调用外部程序
- Java调用外部程序
- Unity常用的设计模式_观察者模式
- RL强化学习各种算法流程伪代码
- 浅析神经网络中的激活函数
- 1.为什么需要nosql?为什么mongodb能够在nosql数据库中脱颖而出
- Java基础教程3:源文件规则
- Spark Pipe调用外部程序
- PTM-A Parallel Turing Machine Protocol
- 读书笔记:Android开发艺术探索之第3章 View的事件体系
- SDUT 1194 余弦
- mysql自定义函数实现递归查询
- param参数与xml不一致 0707
- volatile
- Intellij IDEA 使用技巧一
- iOS开发 博客之旅