【问题标题】:Is it a good practice to incur Spark show() method in production Spark job?在生产 Spark 作业中使用 Spark show() 方法是一种好习惯吗?
【发布时间】:2019-05-04 18:19:16
【问题描述】:

使用DataFrame.show() API,我们可以大致了解底层数据。

在生产火花工作中使用这种方法好吗?

基本上,我知道我们可以在启动作业之前注释这种代码,但如果我们只是保留它,这是一个好习惯吗?
否则会导致性能问题?

【问题讨论】:

    标签: apache-spark dataframe apache-spark-sql mining


    【解决方案1】:

    show() 命令是action

    在代码中添加不必要的操作,可能会干扰 Spark 优化器,因为优化器可以更改转换的顺序,但应该在每次操作时触发操作。
    即使用不必要的操作会限制优化器的工作。

    Actions vs Transformations

    【讨论】:

      【解决方案2】:

      show() 命令是一个动作,所以我们不应该在我们的生产代码中使用它,因为它会使您的代码变得不必要,并最终在一定程度上减慢您的工作。

      【讨论】:

        【解决方案3】:

        不,这不是一个好方法。 Spark 是一个惰性求值器,这意味着在必要之前不会开始执行。它创建一个有向无环图来按顺序跟踪请求。但是,在调用操作之前它不会执行任何操作。因此,应该避免像show 这样不必要的调用操作。

        【讨论】:

          猜你喜欢
          • 2017-06-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多