我正在尝试使用pyspark在一些问候语级别的示例(例如下面)中学习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会话并键入相同的代码时,它可以正常工作:
我的设置:
> Windows 10专业版x64
> python 3.7.2
>火花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软件包.