写入/读取中间数据帧比缓存更好。.这是预期的行为吗?

时间:2019-04-16 19:26:34

标签: apache-spark

当我将中间DF写入csv并将其读回Dataframe并执行操作比我缓存intermeditate df(下面的流中的group_df)并对其执行操作的速度快时。

请参见示例

1. input_df(dataframe) => 20 million records
2. group_df(dataframe) => 27k records

input_df => group_df => perform operations

我正在尝试使用以下选项,并且第三种外观看起来会更快。.请您解释一下这种行为。

1. group_df.cache()
2. group_df.persist(StorageLevel.DISK_ONLY)
3. write the group_df to csv and read it back as dataframe

1 个答案:

答案 0 :(得分:1)

当然! group_df.cache()进行惰性计算,通常只有数据片段存储在内存中(许多片段以LRU方式删除)。在后一种情况下,所有计算都已完成并写入了结果,因此只需从磁盘读取groupd_df数据上的操作即可。