当指定存储级别时,在 pyspark2 中保留数据帧不起作用。我究竟做错了什么?

OTM*_*OTM 2 apache-spark apache-spark-sql pyspark

我试图在执行连接之前保留两个非常大的数据帧以解决“java.util.concurrent.TimeoutException:Futures timed out...”问题(参考:为什么连接因“java.util.concurrent.TimeoutException”而失败:期货在 [300 秒] 后超时”?)。

Persist() 单独可以工作,但是当我尝试指定存储级别时,我收到名称错误。

我尝试过以下方法:

df.persist(pyspark.StorageLevel.MEMORY_ONLY) 
NameError: name 'MEMORY_ONLY' is not defined

df.persist(StorageLevel.MEMORY_ONLY) 
NameError: name 'StorageLevel' is not defined

import org.apache.spark.storage.StorageLevel 
ImportError: No module named org.apache.spark.storage.StorageLevel
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Jay*_*man 8

您必须导入适当的包:-

from pyspark import StorageLevel
Run Code Online (Sandbox Code Playgroud)