【发布时间】:2019-05-04 18:19:16
【问题描述】:
使用DataFrame.show() API,我们可以大致了解底层数据。
在生产火花工作中使用这种方法好吗?
基本上,我知道我们可以在启动作业之前注释这种代码,但如果我们只是保留它,这是一个好习惯吗?
否则会导致性能问题?
【问题讨论】:
标签: apache-spark dataframe apache-spark-sql mining
使用DataFrame.show() API,我们可以大致了解底层数据。
在生产火花工作中使用这种方法好吗?
基本上,我知道我们可以在启动作业之前注释这种代码,但如果我们只是保留它,这是一个好习惯吗?
否则会导致性能问题?
【问题讨论】:
标签: apache-spark dataframe apache-spark-sql mining
show() 命令是action。
在代码中添加不必要的操作,可能会干扰 Spark 优化器,因为优化器可以更改转换的顺序,但应该在每次操作时触发操作。
即使用不必要的操作会限制优化器的工作。
【讨论】:
show() 命令是一个动作,所以我们不应该在我们的生产代码中使用它,因为它会使您的代码变得不必要,并最终在一定程度上减慢您的工作。
【讨论】:
不,这不是一个好方法。 Spark 是一个惰性求值器,这意味着在必要之前不会开始执行。它创建一个有向无环图来按顺序跟踪请求。但是,在调用操作之前它不会执行任何操作。因此,应该避免像show 这样不必要的调用操作。
【讨论】: