Применение внешних пакетов с Jupyter Notebook в кластерах Apache Spark в HDInsight

Узнайте, как настроить для Jupyter Notebook в кластере Apache Spark в HDInsight использование предоставленных сообществом внешних пакетов Apache Maven, которые не включены в базовую версию кластера.

Полный список доступных пакетов можно найти в репозитории Maven . Его также можно получить из других источников. Например, полный список предоставленных сообществом пакетов можно найти в разделе Пакеты Spark.

В этой статье описано, как использовать пакет spark-csv с Jupyter Notebook.

Необходимые компоненты

Использование внешних пакетов с Jupyter Notebook

  1. Перейдите на страницу https://CLUSTERNAME.azurehdinsight.net/jupyter, где CLUSTERNAME — имя кластера Spark.

  2. Создайте новую записную книжку. Щелкните New (Создать), затем выберите Spark.

    Create a new Spark Jupyter Notebook.

  3. Будет создана и открыта записная книжка с именем Untitled.pynb. Выберите имя записной книжки в верхней части страницы и введите понятное имя.

    Provide a name for the notebook.

  4. Используйте волшебную команду %%configure, чтобы настроить для записной книжки использование внешнего пакета. В записных книжках, которые используют внешние пакеты, следует вызывать волшебную команду %%configure в первой ячейке кода. Она настраивает ядро для использования пакета до начала сеанса.

    Внимание

    Если вы забыли настроить ядро в первой ячейке, можно использовать %%configure с параметром -f, но при этом сеанс будет перезапущен и все изменения будут утеряны.

    Версия HDInsight Команда
    Для HDInsight 3.5 и HDInsight 3.6 %%configure
    { "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.11:1.5.0" }}
    Для HDInsight 3.3 и HDInsight 3.4 %%configure
    { "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
  5. Приведенный выше фрагмент ожидает получить координаты Maven для внешнего пакета в центральном репозитории Maven. В этом фрагменте кода com.databricks:spark-csv_2.11:1.5.0 — координата пакета spark-csv в Maven. Вот как сформировать координаты для пакета.

    a. Найдите пакет в репозитории Maven. В этой статье мы используем spark-csv.

    b. В репозитории найдите значения для параметров GroupId, ArtifactId и Version. Убедитесь, что полученные значения соответствуют кластеру. В нашем примере мы используем Scala 2.11 и пакет Spark 1.5.0, но вам могут понадобиться другие версии для соответствующих версий Scala и Spark в вашем кластере. Выяснить версию Scala в кластере можно, выполнив scala.util.Properties.versionString для ядра Jupyter Spark или при отправке Spark. Версию Spark в кластере можно узнать, выполнив sc.version для Jupyter Notebook.

    Use external packages with Jupyter Notebook.

    c. Объедините три значения, разделив их двоеточием (:).

    com.databricks:spark-csv_2.11:1.5.0
    
  6. Запустите ячейку кода с помощью волшебной команды %%configure . После выполнения этой команды соответствующий сеанс Livy будет использовать указанный вами пакет. В последующих ячейках записной книжки теперь можно использовать этот пакет, как показано ниже.

    val df = spark.read.format("com.databricks.spark.csv").
    option("header", "true").
    option("inferSchema", "true").
    load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    

    Для HDInsight 3.4 и более старых версий следует использовать фрагмент кода ниже.

    val df = sqlContext.read.format("com.databricks.spark.csv").
    option("header", "true").
    option("inferSchema", "true").
    load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
  7. Затем можно запустить фрагменты кода, как показано ниже, чтобы просмотреть данные из таблицы данных, созданной на предыдущем шаге.

    df.show()
    
    df.select("Time").count()
    

См. также

Сценарии

Создание и запуск приложений

Инструменты и расширения

Управление ресурсами