我使用 Databricks 社区版。
我的 Spark 程序创建了多个作业。为什么?我认为应该有一份工作,并且可以有多个阶段。
我的理解是,当spark程序提交时,它会创建一个JOB,多个阶段(通常每个shuffle操作都会创建一个新阶段)。下面是正在使用的代码,其中我有 2 个可能的洗牌操作(reduceByKey / SortByKey)和一个操作(Take(5))。
rdd1 = sc.textFile('/databricks-datasets/flights')
rdd2 = rdd1.flatMap(lambda x: x.split(",")).map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y,8).sortByKey(ascending=False).take(5)
Run Code Online (Sandbox Code Playgroud)
再观察一下,工作似乎有了新的阶段(其中一些被跳过),是什么导致了新的工作创造。