Python findSpark и PySpark не работают. Отображает IndexError: список индексов вне диапазона - PullRequest
0 голосов
/ 09 января 2020

Я установил findspark и PySpark несколькими способами. Я использую Python 3,6, java JDK 11,0. Я добавил в файл .bashr c следующие 2 строки кода:

export PATH=$PATH:/home/jbustost/.local/bin
export SPARK_HOME=/home/jbustost/spark-2.4.4-bin-hadoop2.7

Я установил Jupyter Notebook, который работает нормально, но это происходит, когда я пытаюсь использовать findspark.

import findspark
findspark.find() # out[2]:'/home/jbustos/spark-2.4.4-bin-hadoop2.7'
findspark.init() # it crashes here. below is the traceback.
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)

<ipython-input-7-5f9243a09cec> in <module>
----> 1 findspark.init()

~/.local/lib/python3.6/site-packages/findspark.py in init(spark_home, python_path, edit_rc, edit_profile)
    133     # add pyspark to sys.path
    134     spark_python = os.path.join(spark_home, 'python')
--> 135     py4j = glob(os.path.join(spark_python, 'lib', 'py4j-*.zip'))[0]
    136     sys.path[:0] = [spark_python, py4j]
    137 

IndexError: list index out of range

Может ли кто-нибудь указать мне правильное направление? Что мне не хватает? Я пытаюсь установить это в linux mint. Спасибо!

1 Ответ

0 голосов
/ 09 января 2020

Я не думаю, что Spark 2.4.x пока поддерживает JDK 11. Я мог бы найти тикет для добавления поддержки Java 11, но он все еще находится в открытом состоянии. Итак, я бы посоветовал вам go с JDK 8.

Кроме этого, вам нужно еще две вещи.

  1. Необходимо добавить $SPARK_HOME/bin к PATH.
  2. Необходимо добавить параметры драйвера pyspark для связи jupyter с pyspark.

Можете ли вы попробовать добавить следующее в bashr c?

export SPARK_HOME=/home/jbustost/spark-2.4.4-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:/home/jbustost/.local/bin:$PATH
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

Вам нужно выполнить source ~/.bashrc, чтобы изменения вступили в силу.

...