首页 > 解决方案 > Pyspark - 缓存和联合

问题描述

我正在运行这样的代码:

def cache_and_union(df1, df2):
   df1.cache()

   df = df1.union(df2)

   return df.collect()

出于某种原因,在执行 collect 方法时,不会执行和使用缓存(既不会分阶段出现,也不会出现存储)。为什么会发生这种情况?

标签: pythonpyspark

解决方案


从这个代码示例来看,您实际上并没有cache以任何方式使用。cache建议Spark df1 会被多次使用,所以它应该被缓存,而不是每次都重新计算。在您的代码示例中,您只是加入 df1 并进行收集。


推荐阅读