以前我的理解是,一个动作将在spark应用程序中创建一个工作。但让我们看看下面的场景,我只是使用.range()方法创建一个Dataframe
df=spark.range(10)
因为我的spark.default.parallelism是10,所以结果Dataframe是10个分区。现在我只是在Dataframe上执行.show()和.count()操作
df.show()
df.count()
现在,当我检查了spark历史时,我可以看到.show()的3个作业和.count()的1个作业
为什么.show()方法有3个作业?
我读过一些文章,其中.show()最终将在内部调用.take(),它将遍历决定作业数的分区。但我不明白那部分?究竟是什么决定了工作岗位的数量?
暂无答案!
目前还没有任何答案,快来回答吧!