Zainstalowałem OpenJDK 13.0.1 oraz Python 3.8 i Spark 2.4.4. Instrukcje testowania instalacji należy uruchomić. \ Bin \ pyspark z katalogu głównego instalacji Spark. Nie jestem pewien, czy przegapiłem krok w instalacji Spark, jak ustawienie zmiennej środowiskowej, ale nie mogę znaleźć żadnych dalszych szczegółowych instrukcji.
Mogę uruchomić interpreter Pythona na moim komputerze, więc jestem pewien, że jest on poprawnie zainstalowany, a uruchomienie „java -version” daje mi oczekiwaną odpowiedź, więc nie sądzę, aby problem dotyczył któregokolwiek z nich.
Otrzymuję ślad stosu błędów z 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)
źródło
Jako nieprzyzwoite obejście można zastąpić
_cell_set_template_code
implementacją tylko w języku Python3 sugerowaną przez docstring_make_cell_set_template_code
funkcji:Oto poprawka do Spark v2.4.5: https://gist.github.com/ei-grad/d311d0f34b60ebef96841a3a39103622
Zastosuj przez:
To rozwiązuje problem z ./bin/pyspark, ale ./bin/spark-submit używa dołączonego pliku pyspark.zip z własną kopią cloudpickle.py. A jeśli zostałby tam naprawiony, to nadal nie działałby, powodując błąd z tym samym błędem podczas rozpakowywania jakiegoś obiektu
pyspark/serializers.py
.Wygląda jednak na to, że obsługa języka Python 3.8 została już dostarczona do Spark 3.0.0-Preview2, więc można go wypróbować. Lub trzymaj się Python 3.7, jak sugeruje zaakceptowana odpowiedź.
źródło
Spróbuj zainstalować najnowszą wersję pyinstaller, która może być kompatybilna z python 3.8, używając tego polecenia:
odniesienie :
https://github.com/pyinstaller/pyinstaller/issues/4265
źródło
pyspark
nadal daje ten sam błądpyspark\cloudpickle.py
. Występuje problem z PyInstallerPyInstaller\building\utils.py
.