![](/img/trans.png)
[英]PySpark Throwing error Method __getnewargs__([]) does not exist
[英]pyspark: Method isBarrier([]) does not exist
我正在嘗試使用pyspark
遵循一些 hello-word 級別示例(如下所示)來學習 Spark。 我收到“方法 isBarrier([]) 不存在”錯誤,代碼下方包含完整錯誤。
from pyspark import SparkContext
if __name__ == '__main__':
sc = SparkContext('local[6]', 'pySpark_pyCharm')
rdd = sc.parallelize([1, 2, 3, 4, 5, 6, 7, 8])
rdd.collect()
rdd.count()
雖然,當我直接在命令行中啟動 pyspark 會話並輸入相同的代碼時,它工作正常:
我的設置:
問題是 Spark JVM 庫和 PySpark 的版本之間不兼容。 一般來說,PySpark 版本必須與您安裝的 Spark 版本完全匹配(雖然理論上匹配主要和次要版本應該足夠了,但過去已經引入了維護版本中的一些不兼容性)。
換句話說,Spark 2.3.3 與 PySpark 2.4.0 不兼容,您必須將 Spark 升級到 2.4.0 或將 PySpark 降級到 2.3.3。
總體而言,PySpark 並非旨在用作獨立庫。 雖然PyPi 包是一個方便的開發工具(安裝包通常比手動擴展PYTHONPATH
更容易),但對於實際部署,最好堅持使用與實際 Spark 部署捆綁在一起的 PySpark 包。
嘗試使用以下命令啟動您的 python 腳本/會話
import findspark
findspark.init()
根據 spark 安裝目錄更新 sys.path 。 為我工作。
嘗試使用 Java 8(而不是較新版本)並使用安裝 findspark
pip install findspark
然后嘗試在 python 腳本 /session 的開頭導入它
import findspark
findspark.init()
from pyspark import SparkContext
這對我有用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.