Q
理解火花中的洗牌
2
A
回答
3
搅乱此处阶段之间表示为界限:
- 阶段30 - 第一阶段33
- 阶段31 - 第一阶段33
- 阶段32 - 第一阶段33
一旦数据已被洗牌,所有洗牌RDDs使用相同的分区最终join
是1-1依赖(如果所有部分已经在同一行动中执行,它也是本地的,由于搭配),并且不需要额外的洗牌阶段。
1
Shuffling
是跨分区(又称重新分区)重新分配数据的过程,这些分区可能会导致跨越JVM进程或甚至通过线路(在独立机器上的执行者之间)移动数据。
在你的情况下,在并行化步骤之间进行混洗 - 阶段30,31,32作为输入,最终阶段33作为目标成对。
不惜一切代价避免洗牌。考虑如何利用现有分区,或使用Broadcast
变量并尝试减少数据传输。 有关在Spark中洗牌的更多信息,您可以阅读here。
相关问题
- 1. 火花洗牌
- 2. 而不洗牌火花
- 3. 火花洗牌读取时间
- 4. 火花正在洗牌大量数据
- 5. 火花清理洗牌溢出到磁盘
- 6. 火花处理数据混洗吗?
- 7. 理解火花--master
- 8. 火花Scala的理解reduceByKey(_ + _)
- 9. 泄漏到磁盘并洗牌写火花
- 10. 火花笛卡尔不会导致洗牌?
- 11. 了解Spark洗牌溢出
- 12. 尝试理解火花流工作
- 13. 在火花洗牌阶段在堆空间上发生了什么
- 14. 访问循环中的RDD时发生火花 - 酸洗错误
- 15. 洗牌算法:晚餐部门洗牌
- 16. 洗牌一副牌?
- 17. 使用火花与笨处理更新的火花
- 18. 火花壳牌---错误:对象jblas不
- 19. 火花2到火花1.6
- 20. 火花UDF空处理
- 21. 洗牌Python的list
- 22. 洗牌DefaultListModel
- 23. java:卡洗牌,
- 24. 如何洗牌
- 25. 洗牌一套
- 26. SwiftyJSON洗牌
- 27. 洗牌注册
- 28. 火花java.util.logging.Logger中
- 29. PHP解析XML化妆结果洗牌
- 30. H20与火花水的火花差异