pyspark: Method isBarrier([]) does not exist

Ind*_*nus 4 python apache-spark pyspark

I'm trying to learn Spark following some hello-word level example such as below, using pyspark. I got a "Method isBarrier([]) does not exist" error, full error included below the code.

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()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Although, when I start a pyspark session in command line directly and type in the same code, it works fine:

在此处输入图片说明

My setup:

  • windows 10 Pro x64
  • python 3.7.2
  • spark 2.3.3 hadoop 2.7
  • pyspark 2.4.0

104*_*ica 5

问题是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软件包。

  • 我不会这么说。因此,PySpark和Spark不被视为单独的项目,并且发布和开发周期紧密相连。如果有问题,则PySpark软件包(或其他来宾语言库)的状态更令人困惑。提供这些功能是为了使开发更容易(因为手动配置可能很繁琐,例如,请参见[在Python中](/sf/ask/2428013381/)或[在SparkR](https://stackoverflow.com / q / 31184918/10465355)),但从未打算用于生产。 (2认同)