Вопрос

Моя конечная цель - использовать Jupyter вместе с Python для анализа данных с использованием SPARK. Текущее препятствие, которое я лицом, загружает внешний spark_csv библиотека. Я использую Mac OS и Anaconda в качестве распределения Python.

В частности, следующее:

from pyspark import SparkContext
sc = SparkContext('local', 'pyspark')
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('file.csv')
df.show()

При обращении к доходности Юпитера:

Py4JJavaError: An error occurred while calling o22.load.
: java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.csv. Please find packages at http://spark-packages.org

Вот подробно:

Соединение искры вместе с Юпитером

Мне удалось настроить Spark/Pyspark в Jupyter/ipython (с помощью Python 3.x).

Первоначальная настройка системы

На моей ОС XI установил Python с помощью Anaconda. Версия Python, которую я в настоящее время установил по умолчанию, составляет 3.4.4 (Anaconda 2.4.0). Обратите внимание, что я также установил также 2.x версию Python, используя conda create -n python2 python=2.7.

Установка искры

Это на самом деле самый простой шаг; Загрузите последние двоичные файлы в ~/Applications или какой -то другой каталог по вашему выбору. Далее, до архива tar -xzf spark-X.Y.Z-bin-hadoopX.Y.tgzАнкет Для легкого доступа к Spark Создайте символическую ссылку на искру:

ln -s ~/Applications/spark-X.Y.Z-bin-hadoopX.Y ~/Applications/spark

Наконец, добавьте символическую ссылку Spark в путь:

export SPARK_HOME=~/Applications/spark
export PATH=$SPARK_HOME/bin:$PATH

Теперь вы можете запустить Spark/Pyspark на локальном уровне: просто вызвать spark-shell или же pyspark.

Установка Юпитера

Чтобы использовать Spark из ноутбука Юпитера, подготовьте следующее к PYTHONPATH:

export PYTHONPATH=$SPARKHOME/python/lib/py4j-0.8.2.1-src.zip:$SPARKHOME/python/:$PYTHONPATH

Подробнее можно найти здесь.

Это было полезно?

Решение

Предполагая, что остальная часть вашей конфигурации верна, все, что вам нужно сделать, это сделать spark-csv JAR доступен для вашей программы. Есть несколько способов достичь этого:

  • вручную скачать необходимые банки, включая spark-csv и анализатор CSV (например org.apache.commons.commons-csv) и положить их где -нибудь на CLASSPATH.

  • с использованием --packages Опция (используйте версию Scala, которая использовалась для построения искру. Предварительно построенные версии используйте 2.10):

    • с использованием PYSPARK_SUBMIT_ARGS переменная окружающей среды:

      export PACKAGES="com.databricks:spark-csv_2.11:1.3.0"
      export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell"
      
    • добавление строки Gradle в spark.jars.packages в conf/spark-defaults.conf:

      spark.jars.packages    com.databricks:spark-csv_2.11:1.3.0
      

Другие советы

Используйте следующую процедуру на вашем Mac--

  1. vi to ~/.bash_profile (~/.zshrc, если вы находитесь в этом поезде)
  2. Вставьте следующую запись (обязательно укажите желаемую версию Spark-CSV)-

export PYSPARK_SUBMIT_ARGS="--packages com.databricks:spark-csv_2.11:1.3.0 $PYSPARK_SUBMIT_ARGS"

Оттуда запустите записную книжку Ipython и протестируйте с чем-то вроде этого ...

import pyspark as ps
from pyspark.sql import SQLContext

sc = ps.SparkContext()

input_csv = 'file:////PATH_TO_CSV_ON_LOCAL_FILESYSTEM'

df=sqlContext.read.load(input_csv,format='com.databricks.spark.csv', header='true', inferSchema='true')

df.dtypes  # Returns the csv's schema breakdown with types
Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top