He instalado OpenJDK 13.0.1 y python 3.8 y spark 2.4.4. Las instrucciones para probar la instalación son ejecutar. \ Bin \ pyspark desde la raíz de la instalación de spark. No estoy seguro si me perdí un paso en la instalación de la chispa, como configurar alguna variable de entorno, pero no puedo encontrar más instrucciones detalladas.
Puedo ejecutar el intérprete de Python en mi máquina, así que estoy seguro de que está instalado correctamente y ejecutar "java -version" me da la respuesta esperada, así que no creo que el problema sea con ninguno de esos.
Obtengo un rastro de errores de cloudpickly.py:
Traceback (most recent call last):
File "C:\software\spark-2.4.4-bin-hadoop2.7\bin\..\python\pyspark\shell.py", line 31, in <module>
from pyspark import SparkConf
File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\__init__.py", line 51, in <module>
from pyspark.context import SparkContext
File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\context.py", line 31, in <module>
from pyspark import accumulators
File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\accumulators.py", line 97, in <module>
from pyspark.serializers import read_int, PickleSerializer
File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\serializers.py", line 71, in <module>
from pyspark import cloudpickle
File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\cloudpickle.py", line 145, in <module>
_cell_set_template_code = _make_cell_set_template_code()
File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\cloudpickle.py", line 126, in _make_cell_set_template_code
return types.CodeType(
TypeError: an integer is required (got type bytes)
fuente
Como solución alternativa sucia, se puede reemplazar
_cell_set_template_code
con la implementación solo de Python3 sugerida por docstring de la_make_cell_set_template_code
función:Aquí hay un parche para spark v2.4.5: https://gist.github.com/ei-grad/d311d0f34b60ebef96841a3a39103622
Aplicarlo por:
Esto soluciona el problema con ./bin/pyspark, pero ./bin/spark-submit usa pyspark.zip incluido con su propia copia de cloudpickle.py. Y si se solucionara allí, entonces todavía no funcionaría, fallando con el mismo error mientras se desengancha algún objeto
pyspark/serializers.py
.Pero parece que el soporte de Python 3.8 ya llegó a spark v3.0.0-preview2, por lo que uno puede probarlo. O, quédese con Python 3.7, como sugiere la respuesta aceptada.
fuente
Intente instalar la última versión de pyinstaller que sea compatible con python 3.8 con este comando:
referencia :
https://github.com/pyinstaller/pyinstaller/issues/4265
fuente
pyspark
todavía da el mismo errorpyspark\cloudpickle.py
. El problema PyInstaller ocurre enPyInstaller\building\utils.py
.