我用i5和四核处理器(4核8线程)在本地机器上运行spark。我运行了一个简单的spark作业来理解其行为,但却弄不明白spark ui上的分区数和任务数是如何不同的。
我做了以下操作:
读取带有2个分区的sparkDataframe中的csv文件。
我已经使用 df.rdd.getNumPartitions()
这是给2。
应用 withColumn
添加另一列的逻辑。 df1.withColumn("partitionId", spark_partition_id()).groupBy("partitionId").count().show()
获取每个分区的大小。
问题:
通过以上操作,spark创建7个作业ID。为什么是7?我的理解是,一个作业是在调用action时创建的,而我没有7个action。
我有2个分区,所以不应该有2个任务在运行吗?为什么我在不同阶段看到不同数量的任务?
暂无答案!
目前还没有任何答案,快来回答吧!