Spark使用多个过滤器与读取整体从源读取的成本

时间:2017-07-26 16:38:29

标签: apache-spark apache-spark-sql pyspark-sql

在读取较大的可用内存镶木地板文件时,如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")

0 个答案:

没有答案