【发布时间】:2022-03-03 00:24:37
【问题描述】:
以前我的理解是,一个动作将在 spark 应用程序中创建一个工作。但是让我们看看下面的场景,我只是使用 .range() 方法创建一个数据框
df=spark.range(10)
由于我的 spark.default.parallelism 是 10,因此生成的数据帧是 10 个分区。 现在我只是在数据帧上执行 .show() 和 .count() 操作
df.show()
df.count()
现在,当我检查 spark 历史记录时,我可以看到 .show() 的 3 个作业和 .count() 的 1 个作业
为什么 .show() 方法有 3 个作业?
我读过一些 .show() 最终会在内部调用 .take() 的地方,它会遍历决定作业数量的分区。但我没看懂那部分? 究竟是什么决定了工作的数量?
【问题讨论】:
标签: apache-spark pyspark