Apache Spark:操作和作业之间的关系,Spark UI

Vip*_*jan 5 dataframe apache-spark spark-ui

据我所知,到目前为止,在 Spark 中,只要对数据集/数据帧调用操作,就会提交作业。工作可能进一步分为阶段和任务,我了解如何找出阶段和任务的数量。下面给出的是我的小代码

    val spark = SparkSession.builder().master("local").getOrCreate()


    val df = spark.read.json("/Users/vipulrajan/Downloads/demoStuff/data/rows/*.json").select("user_id", "os", "datetime", "response_time_ms")


    df.show()

    df.groupBy("user_id").count().show
Run Code Online (Sandbox Code Playgroud)

据我所知,当我阅读时,它应该在第 4 行提交一份作业。一个在第一场演出,一个在第二场演出。前两个假设是正确的,但对于第二个展示,它提交了 5 个作业。我不明白为什么。下面是我的用户界面的屏幕截图

在此输入图像描述

如您所见,作业 0 用于读取 json,作业 1 用于第一个节目,5 个作业用于第二个节目。谁能帮我理解 Spark UI 中的这项工作是什么?

小智 0

添加一些东西 df.groupBy("user_id").count().explain() ,比如看看你的最后一个show().