我需要测量PySpark代码的性能。为了消除不应该影响运行时间的预处理步骤的影响,我缓存了我的中间数据帧。也就是说,
for i in iiis:
df_cache = ini_df.sample(False, 1/len(iiis))
df_cache.cache.count()
但是,每次尝试这样做时我都会耗尽内存,因为原始数据帧太大了。知道如何在不使用cache
函数的情况下测量代码的运行时间吗?
答案 0 :(得分:0)
如果您的数据帧对于内存而言太大,则应尝试在磁盘上persist
。
from pyspark import StorageLevel
df_cache.persist(StorageLevel.DISK_ONLY)
在我的环境中,仅在磁盘上或在内存上保留只会产生相同的性能。