我正在尝试使用 pyspark
遵循一些 hello-word 级别的示例来学习 Spark,如下所示。我收到“Method isBarrier([]) does not exist”错误,完整错误包含在代码下方。
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 session 并输入相同的代码时,它工作正常:
我的设置:
- Windows 10 专业版 x64
- python 3.7.2
- spark 2.3.3 hadoop 2.7
- pyspark 2.4.0
问题是 Spark JVM 库和 PySpark 的版本不兼容。一般来说,PySpark 版本必须与您的 Spark 安装版本完全匹配(虽然理论上匹配主要版本和次要版本应该足够了,但维护版本中存在一些不兼容性 have been introduced in the past )。
换句话说,Spark 2.3.3 与 PySpark 2.4.0 不兼容,您必须将 Spark 升级到 2.4.0 或将 PySpark 降级到 2.3.3。
总体而言,PySpark 并非设计用于独立库。同时PyPi package是一个方便的开发工具(通常只安装一个包比手动扩展 PYTHONPATH
更容易),对于实际部署,最好坚持使用与实际 Spark 部署捆绑在一起的 PySpark 包。
我是一名优秀的程序员,十分优秀!