spark-sql性能优化之——多线程实现多Job并发执行
2024-10-07 05:13:19
直接上代码
val spark = SparkSession.builder()
.appName("name")
.master("local[2]")
.getOrCreate() val df = spark.read.json("src\\main\\resources\\json.txt") df.show() //没有多线程处理的情况,连续执行两个Action操作,生成两个Job
df.rdd.saveAsTextFile("")
df.rdd.saveAsTextFile("") //用Executor实现多线程方式处理Job
val dfList = Array(df,df)
val executorService = Executors.newFixedThreadPool()
for(df <- dfList) {
executorService.submit(new Callable[Boolean]() {
def call() : Boolean = {
df.show()
true
}
})
} executorService.shutdown() spark.stop()
最新文章
- VMWARE里启动kylin16.0时出现&#39;SMBus Host Controller not enabled&#39;(还未进入系统)
- 【codevs1227】 方格取数 2
- Ubuntu 15.04 中结束进程的命令
- 启动web项目,报内存不足错误的解决方法
- 微软云linux服务器FTP文件传输错误解决办法
- C++ IO操作API及注意事项(包含一个日志类的实现)
- C#弹出对话框
- 移动设备分辨率(终于弄懂了为什么移动端设计稿总是640px和750px)
- js切换背景颜色
- ADO.NET json数组多条记录执行在DAL层循环(执行存储过程)
- [UE4]让机器人开枪射击
- AutoMapper在MVC中的运用06-一次性定义映射、复杂类型属性映射
- Linux 客户端bind函数的使用
- 如何查看Window10系统隐藏文件夹
- nginx安装和遇到的问题
- BZOJ 3498 PA2009 Cakes
- Android 读写位于SD卡上的sqlite数据库文件错误问题
- amazeui笔记-web组件
- Maven私库
- 基于HTML5 Canvas可撕裂布料效果
热门文章
- NX二次开发-Block UI C++界面Body Collector(体收集器)控件的获取(持续补充)
- <;iframe>;框架标签的使用
- mysql注入篇
- iphone5越狱后问题的解决办法
- Qt 线程基础(QThread、QtConcurrent、QThreadPool等)
- 虚拟机安装(Cent OS)
- HTML-参考手册: HTTP 方法:GET 对比 POST
- Python代码规范问题及解决
- Amazon Linux AMI 2015.09 (HVM)平台搭建lamp
- Airbnb React/JSX 编码规范