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

我正在尝试使用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:方法isBarrier([])不存在

虽然,当我直接在命令行中启动pyspark会话并键入相同的代码时,它可以正常工作:

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

我的设置:

> 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软件包.

上一篇:mysql-Pyspark DataFrameWriter jdbc函数的ignore选项会忽略整个事务还是只是冒犯行?


下一篇:python-unionAll导致*