Dataframe 过滤数据帧,同时在pyspark上保留中间副本

Dataframe 过滤数据帧,同时在pyspark上保留中间副本,dataframe,pyspark,hdfs,Dataframe,Pyspark,Hdfs,我正在处理pyspark作业以处理数据帧 基本上,我需要聚合数据帧,然后对其进行过滤。 另外,我希望在进行筛选之前保留聚合数据帧的副本 我认为在.agg之后使用.cash()可以完成这项工作,但我不确定它在生产中的效率,尤其是代码将在大约60亿行上运行 f_grouped=df_union.groupBy('adobe_id').agg(aggregation_dict).cache() 输出=f_grouped.filter(col('Last_seen')>=日期(120天前) 谢谢您不

我正在处理pyspark作业以处理数据帧

基本上,我需要聚合数据帧,然后对其进行过滤。 另外,我希望在进行筛选之前保留聚合数据帧的副本

我认为在.agg之后使用.cash()可以完成这项工作,但我不确定它在生产中的效率,尤其是代码将在大约60亿行上运行


f_grouped=df_union.groupBy('adobe_id').agg(aggregation_dict).cache()
输出=f_grouped.filter(col('Last_seen')>=日期(120天前)


谢谢

您不需要做任何事情。您不需要
缓存()
。对您来说,
f_grouped
是聚合数据,
output
是过滤数据。调用.filter时,它不会再次重新计算groupby.agg?再次重新计算是什么意思?两者都是顺序的,对吗?是的,是顺序的。对不起,我是Spark的新手,仍然不太熟悉它的工作方式。因此,在我执行脚本时,如果没有cache(),f_将被计算并包含聚合数据,然后在进行筛选时,它将获取已经存在的计算机数据帧并对其进行筛选,或者它将执行增益聚合指令(如延迟求值)?