簡體   English   中英

pyspark:方法 isBarrier([]) 不存在

[英]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 會話並輸入相同的代碼時,它工作正常:

在此處輸入圖片說明

我的設置:

  • 視窗 10 專業版 x64
  • 蟒蛇 3.7.2
  • 火花 2.3.3 Hadoop 2.7
  • pyspark 2.4.0

問題是 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM