Ошибка при поиске спецификации модуля для «pyspark.worker» (ModuleNotFoundError: нет модуля с именем «pyspark») - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь запустить программу pyspark, но получаю сообщение об ошибке:

python.exe: Ошибка при поиске спецификации модуля для pyspark.worker (ModuleNotFoundError: Нет модуляс именем 'pyspark')

SparkException: работнику Python не удалось подключиться обратно.

Код:

from pyspark.sql import SparkSession
from pyspark.sql import Row
import pyspark.sql.functions as func

spark = SparkSession\
    .builder\
    .appName("ReplaceNanByAverage")\
    .config("spark.master", "local")\
    .getOrCreate()

items = [(1,12),(1,float('Nan')),(1,14),(1,10),(2,22),(2,20),(2,float('Nan')),(3,300),
         (3,float('Nan'))]

sc = spark.sparkContext
rdd = sc.parallelize(items)
itemsRdd = rdd.map(lambda x: Row(id=x[0], col1=int(x[1])))
df = itemsRdd.toDF()

Я испробовал множество предлагаемых решений:

  • Понижение версии Spark
  • Использование findspark.init ()
  • Использование findspark.init ('/ path / to / spark_home')
  • Добавление корня контента в структуру проекта.
  • Использование .config ('PYTHONPATH', 'pyspark.zip:py4j-0.10.7-src.zip')

Но я продолжаюполучаю ту же ошибку.

Я работаю в PyCharm IDE на Windows.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Я решил проблему, обновив Python с версии 3.6 до 3.7.

0 голосов
/ 23 сентября 2019

После загрузки и извлечения искры на вашем локальном компьютере, вы можете попробовать добавить эти строки в bash_Profile или bashrc, в зависимости от того, используете ли вы mac или linux? Примечание : это для spark 2.4.0, замените версию spark и py4j в соответствии с вашей локальной установкой.

export SPARK_HOME=<prefix-to-spark-path>/spark-2.4.0-bin-hadoop2.7 
export PYTHONPATH=${SPARK_HOME}/python:$PYTHONPATH 
export PYTHONPATH=${SPARK_HOME}/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH

export PYSPARK_PYTHON=<path-to-your-python> 
export PYSPARK_DRIVER_PYTHON=<path-to-your-python>

PATH=$PATH:$SPARK_HOME/bin

Имейте в виду, что синтаксис в linux немного отличается, поэтому настройтесоответственно.После внесения изменений выполните source ~/.bash_profile или source ~/.bashrc.Затем в вашем проекте PyCharm используйте тот же интерпретатор python, который вы связали в предыдущем файле.Это должно работать.

...