Отправка заданий Spark в кластере больших данных SQL Server в Visual Studio Code

Это важно

Надстройка "Кластеры больших данных Microsoft SQL Server 2019" будет прекращена. Поддержка кластеров больших данных SQL Server 2019 завершится 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на этой платформе, а программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений для SQL Server до этого времени. Для получения дополнительной информации см. запись блога об объявлении и параметры работы с большими данными на платформе Microsoft SQL Server.

Узнайте, как использовать средства Spark и Hive для Visual Studio Code для создания и отправки скриптов PySpark для Apache Spark, сначала описано, как установить средства Spark и Hive в Visual Studio Code, а затем мы рассмотрим, как отправить задания в Spark.

Средства Spark и Hive можно установить на платформах, поддерживаемых Visual Studio Code, которые включают Windows, Linux и macOS. Ниже приведены предварительные требования для разных платформ.

Предпосылки

Для выполнения действий, описанных в этой статье, необходимо следующее:

Установка Spark & Hive Tools

После завершения предварительных требований можно установить средства Spark и Hive для Visual Studio Code. Выполните следующие действия, чтобы установить средства Spark и Hive:

  1. Откройте Visual Studio Code.

  2. В строке меню выберите Вид>Расширения.

  3. В поле поиска введите Spark & Hive.

  4. Выберите Spark и Hive Tools, опубликованные корпорацией Майкрософт, в результатах поиска и нажмите кнопку "Установить".

    Установка расширения

  5. Перезагрузите при необходимости.

Открытие рабочей папки

Выполните следующие действия, чтобы открыть рабочую папку и создать файл в Visual Studio Code:

  1. В строке меню перейдите к Файл>Открыть папку...>C:\SQLBDC\SQLBDCexample, а затем нажмите кнопку Выбрать папку. Папка отображается в представлении проводника слева.

  2. В представлении обозревателя выберите папку SQLBDCexample, а затем значок "Создать файл " рядом с рабочей папкой.

    Новый файл

  3. Назовите новый файл расширением .py файла (скрипт Spark). В этом примере используется HelloWorld.py.

  4. Скопируйте и вставьте в файл скрипта следующий код:

    import sys
    from operator import add
    from pyspark.sql import SparkSession, Row
    
    spark = SparkSession\
       .builder\
       .appName("PythonWordCount")\
       .getOrCreate()
    
    data = [Row(col1='pyspark and spark', col2=1), Row(col1='pyspark', col2=2), Row(col1='spark vs hadoop', col2=2), Row(col1='spark', col2=2), Row(col1='hadoop', col2=2)]
    df = spark.createDataFrame(data)
    lines = df.rdd.map(lambda r: r[0])
    
    counters = lines.flatMap(lambda x: x.split(' ')) \
       .map(lambda x: (x, 1)) \
       .reduceByKey(add)
    
    output = counters.collect()
    sortedCollection = sorted(output, key = lambda r: r[1], reverse = True)
    
    for (word, count) in sortedCollection:
       print("%s: %i" % (word, count))
    

Прежде чем отправлять скрипты в кластеры из Visual Studio Code, необходимо связать кластер больших данных SQL Server.

  1. В строке меню перейдите к представлению>палитры команд..., а затем введите Spark /Hive: связывание кластера.

    Команда связи кластера

  2. Выберите связанный тип кластера SQL Server Big Data.

  3. Введите конечную точку больших данных SQL Server.

  4. Введите имя пользователя кластера больших данных SQL Server.

  5. Введите пароль для администратора пользователя.

  6. Задайте отображаемое имя кластера больших данных (необязательно).

  7. Перечислите кластеры, просмотрите представление OUTPUT для проверки.

список кластеров

  1. В строке меню перейдите к представлению>палитры команд..., а затем введите Spark / Hive: List Cluster.

  2. Просмотрите представление OUTPUT. В представлении будут показаны ваши связанные кластеры.

    Настройка конфигурации кластера по умолчанию

Настройка кластера по умолчанию

  1. Re-Open папка SQLBDCexample, созданная ранее, если закрыта.

  2. Выберите файл , HelloWorld.py созданный ранее , и он откроется в редакторе скриптов.

  3. Свяжите кластер, если вы еще не сделали этого.

  4. Щелкните правой кнопкой мыши редактор скриптов и выберите Spark / Hive: Задать кластер по умолчанию.

  5. Выберите кластер в качестве используемого по умолчанию для текущего файла скрипта. Средства автоматически обновляют файл конфигурации .VSCode\settings.json.

    Настройка конфигурации кластера по умолчанию

Отправка интерактивных запросов PySpark

Интерактивные запросы PySpark можно отправить, выполнив следующие действия:

  1. Повторно откройте папку SQLBDCexample, созданную ранее, если она закрыта.

  2. Выберите файл , HelloWorld.py созданный ранее , и он откроется в редакторе скриптов.

  3. Свяжите кластер, если вы еще не сделали этого.

  4. Выберите весь код и щелкните правой кнопкой мыши редактор скриптов, выберите Spark: PySpark Interactive , чтобы отправить запрос, или используйте сочетание клавиш CTRL+ALT+I.

    Интерактивное контекстное меню pyspark

  5. Выберите кластер, если вы не указали кластер по умолчанию. Через несколько минут интерактивные результаты Python отображаются на новой вкладке. Средства также позволяют отправлять блок кода вместо всего файла скрипта с помощью контекстного меню.

    Интерактивное окно python pyspark

  6. Введите "%%info", а затем нажмите клавиши SHIFT+ВВОД , чтобы просмотреть сведения о задании. (Необязательно)

    просмотр сведений о задании

    Замечание

    Когда расширение Python отключено в настройках (по умолчанию оно включено), результаты отправленных взаимодействий pyspark будут использовать старое окно.

    Расширение pyspark для интерактивного python отключено

Отправка пакетного задания PySpark

  1. Повторно откройте папку SQLBDCexample, созданную ранее, если она закрыта.

  2. Выберите файл , HelloWorld.py созданный ранее , и он откроется в редакторе скриптов.

  3. Свяжите кластер, если вы еще не сделали этого.

  4. Щелкните правой кнопкой мыши редактор скриптов и выберите Spark: PySpark Batch или используйте сочетание клавиш CTRL+ALT+H.

  5. Выберите кластер, если вы не указали кластер по умолчанию. После отправки задания Python журналы отправки отображаются в окне вывода в Visual Studio Code. Также отображаются URL-адрес пользовательского интерфейса Spark и URL-адрес пользовательского интерфейса Yarn . Вы можете открыть этот URL-адрес в браузере для отслеживания состояния задания.

    Отправка результата задания Python

Конфигурация Apache Livy

Конфигурация Apache Livy поддерживается, ее можно задать в разделе .VSCode\settings.js в рабочей папке. Сейчас конфигурация Livy поддерживает только скрипт Python. Дополнительные сведения см. в статье Livy README.

Активация конфигурации Livy

Метод 1

  1. В строке меню выберите Файл>Настройки>Параметры.
  2. В текстовом поле параметров поиска введите HDInsight Job Submission: Livy Conf.
  3. Выберите Изменить в settings.json для соответствующего результата поиска.

Метод 2

Отправьте файл и обратите внимание, что папка .vscode добавляется автоматически в рабочую папку. Конфигурацию Livy можно найти, выбрав settings.json в разделе .vscode.

Параметры проекта:

Конфигурация Livy

Замечание

Для настроек driverMemory и executorMemory задайте значение с единицей, например 1 ГБ или 1024 МБ.

Поддерживаемые конфигурации Livy

POST /batches

текст запроса

имя описание тип
файл Файл, содержащий приложение для выполнения путь (обязательный)
proxyUser Пользователь, олицетворяемый при выполнении задания струна
имя класса Класс main приложения в Java/Spark струна
args Аргументы командной строки для приложения список строк
Банки Jars для использования в этом сеансе Список строк
pyFiles Файлы Python для использования в этом сеансе Список строк
Файлы файлы, используемые в этом сеансе Список строк
память драйвера Объем памяти, используемой для процесса драйвера струна
driverCores Число ядер, используемых для процесса драйвера инт
исполнителяMemory Объем памяти для каждого процесса исполнителя струна
executorCores Число ядер, используемых для каждого исполнителя инт
количество исполнителей Количество исполнителей для запуска этого сеанса инт
архив Архивы, используемые в этом сеансе Список строк
очередь Имя очереди YARN, в которую отправлена струна
имя Имя этого сеанса струна
конф Свойства конфигурации Spark Сопоставление key=val
:- :- :-

Содержимое ответа

Созданный пакетный объект.

имя описание тип
идентификатор Идентификатор сеанса инт
appId (идентификатор приложения) Идентификатор приложения этого сеанса Струна
appInfo Подробные сведения о приложении Сопоставление key=val
журнал Строки журнала список строк
государство Состояние пакетной службы струна
:- :- :-

Замечание

Назначенная конфигурация Livy будет отображаться в области вывода при отправке скрипта.

Дополнительные функции

Spark и Hive для Visual Studio Code поддерживает следующие функции:

  • Автозавершение IntelliSense. Появляются предложения для ключевых слов, методов, переменных и т. д. Различные значки представляют различные типы объектов.

    Инструменты Spark и Hive для типов объектов IntelliSense в Visual Studio Code

  • Маркер ошибок IntelliSense. Языковая служба подчеркивает ошибки редактирования скрипта Hive.

  • Выделение синтаксиса. Языковая служба использует различные цвета, чтобы различать переменные, ключевые слова, тип данных, функции и многое другое.

    Основные сведения о синтаксисе Spark и Hive Tools для Visual Studio Code

  1. В строке меню перейдите к представлению>палитры команд..., а затем введите Spark / Hive: отмените связь с кластером.

  2. Выберите кластер для отмены связи.

  3. Просмотрите представление OUTPUT для проверки.

Дальнейшие шаги

Дополнительные сведения о кластере больших данных SQL Server и связанных сценариях см. в кластерах больших данных SQL Server.