我有 3 个数据框 df1、df2 和 df3。每个数据帧大约有 300 万行。df1 和 df3 有 apprx。8列。df2 只有 3 列。
(df1 的源文本文件大小约为 600MB)
这些是执行的操作:
df_new=df1 left join df2 -> group by df1 columns->select df1 columns, first(df2 columns)
df_final = df_new 外连接 df3
df_split1 = df_final 使用条件 1 过滤
df_split2 = df_final 使用条件 2 过滤
在对两个数据帧执行不同操作后,将 df_split1,df_split2 写入单个表
在 pyspark 1.3.1 中,整个过程需要 15 分钟,默认分区值 = 10,执行程序内存 = 30G,驱动程序内存 = 10G,我在必要时使用了 cache()。
但是当我使用 hive 查询时,这几乎不需要 5 分钟。是否有任何特殊原因导致我的数据帧操作缓慢,有什么方法可以提高性能吗?