Saya telah menginstal OpenJDK 13.0.1 dan python 3.8 dan spark 2.4.4. Petunjuk untuk menguji instalasi adalah untuk menjalankan. \ Bin \ pyspark dari akar instalasi percikan. Saya tidak yakin apakah saya melewatkan langkah dalam instalasi percikan, seperti mengatur beberapa variabel lingkungan, tetapi saya tidak dapat menemukan petunjuk lebih lanjut.
Saya dapat menjalankan interpreter python di komputer saya, jadi saya yakin bahwa itu diinstal dengan benar dan menjalankan "java -versi" memberi saya respons yang diharapkan, jadi saya tidak berpikir masalahnya ada pada salah satu dari itu.
Saya mendapatkan jejak kesalahan dari 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)
sumber
Sebagai solusi kotor, seseorang dapat mengganti
_cell_set_template_code
dengan implementasi Python3-only yang disarankan oleh docstring of_make_cell_set_template_code
function:Berikut ini adalah patch untuk spark v2.4.5: https://gist.github.com/ei-grad/d311d0f34b60ebef96841a3a39103622
Terapkan oleh:
Ini memperbaiki masalah dengan ./bin/pyspark, tetapi ./bin/spark-submit menggunakan pyspark.zip yang dibundel dengan salinan cloudpickle.py sendiri. Dan jika itu akan diperbaiki di sana, maka itu masih tidak akan berhasil, gagal dengan kesalahan yang sama saat membongkar beberapa objek di
pyspark/serializers.py
.Tapi sepertinya dukungan Python 3.8 sudah tiba untuk memicu v3.0.0-preview2, jadi orang bisa mencobanya. Atau, tetap gunakan Python 3.7, seperti yang disarankan jawaban yang diterima.
sumber
Coba instal versi terbaru pyinstaller yang dapat kompatibel dengan python 3.8 menggunakan perintah ini:
referensi :
https://github.com/pyinstaller/pyinstaller/issues/4265
sumber
pyspark
masih memberikan kesalahan yang samapyspark\cloudpickle.py
. Masalah PyInstaller terjadi diPyInstaller\building\utils.py
.