发生动作时Spark总是读取数据

问题描述 投票:0回答:1

我是Spark的新手,我了解到了转换和动作。转换返回新的rdds和数据框,并且操作对其执行操作。除非不执行操作,否则不执行任何转换。除非请求任何操作,否则转换只是沿袭中的步骤。因此,当我读取一个数据框时,它也是一个转换,如果在读取后在同一个数据框上调用两个动作,它是读取两次还是仅读取一次然后对它们执行动作?

df = ss.read.csv('test.csv')
df.count()
df.take(5)
dataframe pyspark lazy-evaluation
1个回答
0
投票

动作通常会导致执行,请按您的状态读取。这不是操作的情况,而是实际执行的情况-除​​需要执行的作业例外。

如果没有缓存/持久化数据,则将多次读取数据,除非发生某些跳过的动作。

可以优化延迟执行和沿袭平均代码。

© www.soinside.com 2019 - 2024. All rights reserved.