SparkSession | Убунту | Pycharm не работает - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь использовать PySpark локально в Ubuntu, используя PyCharm, а не блокнот jupyter для создания приложения Electron. Тем не менее, когда я пытаюсь настроить SparkSession, он не работает. Когда я пытаюсь это сделать:

spark = SparkSession.builder.master('local[*]').appName('Search').enableHiveSupport().getOrCreate
df = pd.DataFrame([1,2,3], columns=['Test'])
myschema = StructType([StructField('Test'),Integertype(),True)])
df2 = spark.createDataFrame(df,schema=myschema)
print(type(df2))

сеанс открывается, но он говорит мне

"AttributeError: 'function' object has no attribute 'createDataFrame' "

Затем перепишите выше с помощью ".getOrCreate ()", и он говорит мне

"FileNotFoundError: [Error 2] No such file or directory "home/...././bin/spark-submit'

Полагаю, настройки в Pycharm отключены, но я не совсем понимаю, почему.

1 Ответ

0 голосов
/ 13 апреля 2020

Вам нужно использовать вызов метода getOrCreate(), а не getOrCreate. Также убедитесь, что вы установили pyspark внутри интерпретатора python, используемого для вашего проекта в pycharm. Вы можете получить к нему доступ через Настройки -> Python Интерпретатор в pycharm.

Обновление : Попробуйте загрузить и извлечь искру двоичные файлы (например, spark 2.4.0) на вашем локальном компьютере, а затем добавьте следующие записи в ваш bashr c (и запишите его). Я предполагаю, что вы используете spark 2.4.0, поэтому py4j определен c для этой версии. Для любой другой версии spark, проверьте версию py4j и добавьте соответственно.

export SPARK_HOME=/<your_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=/<location_of_python_interpreter>

К какому интерпретатору python вы подключаетесь в PYSPARK_PYTHON, обязательно используйте тот же python в вашем pycharm проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...