PySpark 2.4.5 与 Python 3.8.3 不兼容,如何解决这个问题?

Aje*_*esh 5 python apache-spark pyspark

代码

from pyspark import SparkContext,SparkConf

conf=SparkConf().setMaster('local').setAppName('Test App')
sc=SparkContext(conf)
Run Code Online (Sandbox Code Playgroud)

错误信息

    Traceback (most recent call last):
      File "C:\Users\Test\PycharmProjects\python-test\MainFile.py", line 5, in <module>
        from pyspark import SparkContext,SparkConf
      File "C:\Test\Python_3.8.3_Latest\lib\site-packages\pyspark\__init__.py", line 51, in <module>
        from pyspark.context import SparkContext
      File "C:\Test\Python_3.8.3_Latest\lib\site-packages\pyspark\context.py", line 31, in <module>
        from pyspark import accumulators
      File "C:\Test\Python_3.8.3_Latest\lib\site-packages\pyspark\accumulators.py", line 97, in <module>
        from pyspark.serializers import read_int, PickleSerializer
      File "C:\Test\Python_3.8.3_Latest\lib\sit`enter code here`e-packages\pyspark\serializers.py", line 72, in <module>
        from pyspark import cloudpickle
      File "C:\Test\Python_3.8.3_Latest\lib\site-packages\pyspark\cloudpickle.py", line 145, in <module>
        _cell_set_template_code = _make_cell_set_template_code()
      File "C:\Test\Python_3.8.3_Latest\lib\site-packages\pyspark\cloudpickle.py", line 126, in _make_cell_set_template_code
        return types.CodeType(
    TypeError: an integer is required (got type bytes)
Run Code Online (Sandbox Code Playgroud)

Bit*_*sky 6

虽然最新的 Spark 文档说它支持 Python Python 2.7+/3.4+3.8,但实际上它还不支持 Python 3.8。根据PR,Spark 3.0 预计支持 Python 3.8。因此,您可以尝试 Spark 3.0 预览版(假设您不打算进行生产部署),也可以“暂时”回退到 Spark 2.4.x 的 Python 3.6/3.7。

  • @dallonsi [this](https://issues.apache.org/jira/browse/SPARK-29536) 表示该问题已在 Spark v3.0.0 中修复,因此应该可以工作。 (4认同)
  • 我降级到Python 3.7.7 (2认同)