【问题标题】:Apache Spark: Relationship between action and job, Spark UIApache Spark:动作和作业之间的关系,Spark UI
【发布时间】:2019-03-28 03:39:54
【问题描述】:

到目前为止,据我所知,在 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

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

您可以看到作业 0 用于读取 json,作业 1 用于第一个节目,5 个作业用于第二个节目。谁能帮助我了解 spark UI 中的这项工作是什么?

【问题讨论】:

  • spark 还提交了一个转换作业。我认为您的工作 ID 2,3 是针对 groupBy 的。作业 ID 4,5 用于计数,然后只有 1 个作业用于 show() ,因为 show() 位于主服务器上,而 groupBy 分布在执行程序中。你有 2 个执行人吗?
  • 不,只有一个单核执行器。

标签: apache-spark dataframe spark-ui


【解决方案1】:

添加类似 df.groupBy("user_id").count().explain() 看看,你最后一个 show() 的幕后究竟是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多