前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark如何保证使用RDD、DataFrame和DataSet的foreach遍历时保证顺序执行

Spark如何保证使用RDD、DataFrame和DataSet的foreach遍历时保证顺序执行

作者头像
静谧星空TEL
发布2021-04-27 14:33:30
2.2K0
发布2021-04-27 14:33:30
举报

前言

spark运行模式 常见的有 local、yarn、spark standalone cluster 国外流行 mesos 、k8s 即使使用 local 模式,spark也会默认充分利用CPU的多核性能 spark使用RDD、DataFrame、DataSet等数据集计算时,天然支持多核计算 但是多核计算提升效率的代价是数据不能顺序计算 如何才能做到即使用spark数据集计算时又保证顺序执行?

1、重新分区

代码语言:javascript
复制
.repartition(1).foreach

2、合并分区

代码语言:javascript
复制
.coalesce(1).foreach

3、转换成数组

代码语言:javascript
复制
.collect().foreach

4、设置并行度

代码语言:javascript
复制
val spark = SparkSession.builder().config("spark.default.parallelist","1").getOrCreate()

5、设置单核

代码语言:javascript
复制
val spark = SparkSession.builder().appName("").master("local[1]").getOrCreate()

推荐使用 repartition,coalesce 和 collect 可能会出现 oom 

速度固然重要,但解决问题才是根本! 

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1、重新分区
  • 2、合并分区
  • 3、转换成数组
  • 4、设置并行度
  • 5、设置单核
  • 推荐使用 repartition,coalesce 和 collect 可能会出现 oom 
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档