pyspark lazy evalution是如何在spark中工作的?

yzckvree  于 2023-10-15  发布在  Spark
关注(0)|答案(1)|浏览(92)

假设我有一个名为df1的框架,它的大小为1 GB,列有name、age和city。
现在我想应用过滤器

df2 = df1.filter(df1.age > 23)
df2.collect()

现在我的问题是-Spark遵循什么模式?我的理解是,首先,在内存中加载1GB大小的df 1,检查条件,然后创建df 2。

gfttwv5a

gfttwv5a1#

什么是懒惰评估,Spark检查我们代码中的操作(收集,显示,保存为文件,保存为文本文件)。如果代码库中存在任何一个Action,则只有Spark会评估Transformations(分组,过滤和Map)
你可能会问这样的问题,为什么Spark要这样做?答案是如果你没有访问转换的输出,这意味着它浪费了内存来执行事务。因为,如果您不打算使用转换的输出执行任何操作,那么我们为什么需要执行转换呢?因此,* 如果您在代码中执行任何Action,则只有Spark执行所有**transformations*。
有关详细信息,请参阅以下文档https://medium.com/yavar/apache-spark-transformations-actions-9878ecfc0211

相关问题