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. 访问循环中的RDD时发生火花 - 酸洗错误
- 8. 火花壳牌---错误:对象jblas不
- 9. 使用火花与笨处理更新的火花
- 10. 火花2到火花1.6
- 11. 洗牌Python的list
- 12. 火花UDF空处理
- 13. SwiftyJSON洗牌
- 14. java:卡洗牌,
- 15. 洗牌注册
- 16. 洗牌一套
- 17. 火花java.util.logging.Logger中
- 18. H20与火花水的火花差异
- 19. 在Java中洗牌一套
- 20. 如何在Elm中洗牌?
- 21. 洗牌并处理一卡牌的约束
- 22. Apache的火花Scala的异常处理
- 23. Javascript洗牌字母
- 24. 如何洗牌对
- 25. NSArray无法洗牌
- 26. 洗牌在Objective-C
- 27. 洗牌类实例
- 28. 洗牌链表栈
- 29. masonry.js不会洗牌
- 30. 火花