当我将中间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
答案 0 :(得分:1)
当然! group_df.cache()
进行惰性计算,通常只有数据片段存储在内存中(许多片段以LRU方式删除)。在后一种情况下,所有计算都已完成并写入了结果,因此只需从磁盘读取groupd_df
数据上的操作即可。