缓存中间数据帧以测试火花性能

时间:2018-03-12 06:58:39

标签: apache-spark optimization pyspark

我需要测量PySpark代码的性能。为了消除不应该影响运行时间的预处理步骤的影响,我缓存了我的中间数据帧。也就是说,

for i in iiis:
    df_cache = ini_df.sample(False, 1/len(iiis))
    df_cache.cache.count()

但是,每次尝试这样做时我都会耗尽内存,因为原始数据帧太大了。知道如何在不使用cache函数的情况下测量代码的运行时间吗?

1 个答案:

答案 0 :(得分:0)

如果您的数据帧对于内存而言太大,则应尝试在磁盘上persist

from pyspark import StorageLevel
df_cache.persist(StorageLevel.DISK_ONLY)

在我的环境中,仅在磁盘上或在内存上保留只会产生相同的性能。