在读取较大的可用内存镶木地板文件时,如S3中的源到不同的数据帧,请说dfa,dfb,dfc具有不同的过滤条件a,b,c。每个数据帧是否只读取部分数据。 由于spark支持延迟评估,因此无需任何条件即可读取数据帧中的时间总成本。
如果我的理解是错误的,请告诉我 总的来说,这是过滤操作的伪代码:
df_raw = spark.read.parquet("s3://path")
df_a = df_core.filter(df_core.Column1.isin("condition A))
df_b = df_core.filter(df_core.Column1.isin("condition B))
df_c = df_core.filter(df_core.Column1.isin("condition C))
df_a=df_a.repartition(2200,["ColumnA","ColumnB"])
df_b=df_b.repartition(1500,["ColumnA","ColumnC"])
df_c=df_c.repartition(800,["ColumnA"])
df_new_intermediate = df_a.unionAll(df_b)
df_new = df_new_intermediate.unionAll(df_c)
df_new.groupBy("ColumnA","ColumnB","ColumnC")