Создание Spark DataFrame из Pandas DataFrame - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь построить Spark DataFrame из простого Pandas DataFrame.Это шаги, которые я выполняю.

import pandas as pd
pandas_df = pd.DataFrame({"Letters":["X", "Y", "Z"]})
spark_df = sqlContext.createDataFrame(pandas_df)
spark_df.printSchema()

До этого момента все в порядке.Вывод:

root
| - Letters: string (nullable = true)

Проблема возникает, когда я пытаюсь напечатать DataFrame:

spark_df.show()

Это результат:

Произошла ошибка при вызове o158.collectToPython.: org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задание 0 на этапе 5.0 не выполнено 1 раз, последний сбой: потерянное задание 0.0 на этапе 5.0 (TID 5, localhost, драйвер исполнителя): org.apache.spark.SparkException:
Ошибка от работника Python:
Ошибка выполнения команды Jupyter 'pyspark.daemon': [Errno 2] Нет такого файла или каталога PYTHONPATH был:
/home/roldanx/soft/spark-2.4.0-бен-hadoop2.7 / питон / Библиотека / pyspark.zip: /home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip: /главный / roldanx / мягкий / искровой 2.4.0-бен-hadoop2.7 / банки / искровой core_2.11-2.4.0.jar: /home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip:/home/roldanx/soft/spark-2.4.0-bin-hadoop2.7/python/: org.apache.spark.SparkException: в pyspark нет номера порта.daemon's stdout

Это мои спецификации Spark:

SparkSession - куст

SparkContext

Spark UI

Версия: v2.4.0

Мастер: локальный [*]

AppName: PySparkShell

Это мой venv:

export PYSPARK_PYTHON = jupyter

export PYSPARK_DRIVER_PYTHON_OPTS = 'lab'

Факт:

Как упоминается в ошибке, это связано с запуском pyspark из Jupyter.Работа с PYSPARK_PYTHON = python2.7 и PYSPARK_PYTHON = python3.6 работает нормально

1 Ответ

0 голосов
/ 15 февраля 2019

Импортируйте и инициализируйте findspark, создайте сеанс spark, а затем используйте объект для преобразования кадра данных pandas в кадр данных spark.Затем добавьте новый фрейм данных искры в каталог.Протестировано и работает на Jupiter 5.7.2 и Spyder 3.3.2 с python 3.6.6.

import findspark
findspark.init()

import pyspark
from pyspark.sql import SparkSession
import pandas as pd

# Create a spark session
spark = SparkSession.builder.getOrCreate()

# Create pandas data frame and convert it to a spark data frame 
pandas_df = pd.DataFrame({"Letters":["X", "Y", "Z"]})
spark_df = spark.createDataFrame(pandas_df)

# Add the spark data frame to the catalog
spark_df.createOrReplaceTempView('spark_df')

spark_df.show()
+-------+
|Letters|
+-------+
|      X|
|      Y|
|      Z|
+-------+

spark.catalog.listTables()
Out[18]: [Table(name='spark_df', database=None, description=None, tableType='TEMPORARY', isTemporary=True)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...