Преобразование данных с помощью действия Spark в Фабрике данных Azure и Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Действие Spark в фабрике данных и конвейере Synapse выполняет программу Spark в вашем кластере HDInsight или в кластере HDInsight по запросу. Данная статья основана на материалах статьи о действиях преобразования данных , в которой приведен общий обзор преобразования данных и список поддерживаемых действий преобразования. Если вы используете связанную службу Spark по требованию, служба автоматически создает кластер Spark для обработки данных, когда это необходимо, а затем удаляет его после завершения обработки.

Добавление действия Spark в конвейер с помощью пользовательского интерфейса

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

  1. Выполните поиск элемента Spark на панели конвейера «Действия» и перетащите действие Spark на холст конвейера.

  2. Выберите новое действие Spark на холсте, если оно еще не выбрано.

  3. Перейдите на вкладку Кластер HDI, чтобы выбрать или создать связанную службу для кластера HDInsight, которая будет использоваться для выполнения действия Spark.

    Отображает пользовательский интерфейс для действия Spark.

  4. Перейдите на вкладку Script / Jar, чтобы выбрать или создать связанную службу задания для учетной записи служба хранилища Azure, в которой будет размещен скрипт. Укажите путь к файлу для выполнения. Можно также настроить дополнительные сведения, включая пользователя прокси-сервера, конфигурацию отладки, а также аргументы и параметры конфигурации Spark, которые будут переданы в скрипт.

    Отображает пользовательский интерфейс для вкладки

Свойства действия Spark

Ниже приведен пример определения JSON действия Spark.

{
    "name": "Spark Activity",
    "description": "Description",
    "type": "HDInsightSpark",
    "linkedServiceName": {
        "referenceName": "MyHDInsightLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "sparkJobLinkedService": {
            "referenceName": "MyAzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "rootPath": "adfspark",
        "entryFilePath": "test.py",
        "sparkConfig": {
            "ConfigItem1": "Value"
        },
        "getDebugInfo": "Failure",
        "arguments": [
            "SampleHadoopJobArgument1"
        ]
    }
}

В следующей таблице приведено описание свойств, используемых в определении JSON.

Свойство Описание: Обязательное поле
name Имя действия в конвейере. Да
описание Описание действия. No
type Для действия Spark используется тип действия HDInsightSpark. Да
linkedServiceName Имя связанной службы Spark HDInsight, в которой выполняется программа Spark. Дополнительные сведения об этой связанной службе см. в статье Вычислительные среды, поддерживаемые фабрикой данных Azure. Да
SparkJobLinkedService Связанная служба службы хранилища Azure, в которой хранятся файл задания Spark, зависимости и журналы. Здесь поддерживаются только связанные службы Хранилище BLOB-объектов Azure и ADLS 2-го поколения. Если значение этого свойства не указано, используется хранилище, связанное с кластером HDInsight. Значением этого свойства может быть только связанная служба хранилища Azure. No
rootPath Контейнер BLOB-объектов Azure и папка, содержащая файл Spark. В имени файла учитывается регистр знаков. Подробнее о структуре этой папки см. в разделе о структуре папок (следующий раздел). Да
entryFilePath Относительный путь к корневой папке пакета и кода Spark. Файл записи должен быть файлом Python или JAR-файлом. Да
className Основной класс Java или Spark приложения. No
аргументы Список аргументов командной строки для программы Spark. No
proxyUser Учетная запись пользователя для олицетворения, используемая для выполнения программы Spark. No
sparkConfig Укажите значения для свойств конфигурации Spark, перечисленных в разделе Конфигурация Spark — свойства приложения. No
getDebugInfo Указывает, когда файлы журнала Spark копируются в службу хранилища Azure, используемое кластером HDInsight или определенное sparkJobLinkedService. Допустимые значения: None, Always или Failure. Значение по умолчанию: None. No

Структура папок

Задания Spark обеспечивают большую гибкость, чем задания Pig и Hive. Для заданий Spark можно указать несколько зависимостей, например пакеты JAR (размещаются в CLASSPATH Java), файлы Python (размещаются в PYTHONPATH) и другие файлы.

Создайте следующую структуру папок в хранилище BLOB-объектов Azure, на которое ссылается связанная служба HDInsight. Затем передайте зависимые файлы в соответствующие вложенные папки в корневой папке, определенной значением entryFilePath. Например, передайте файлы Python во вложенную папку pyFiles, а JAR-файлы — во вложенную папку jars, расположенную в корневой папке. Во время выполнения служба ожидает в хранилище BLOB-объектов Azure следующую структуру папок:

Путь Description Обязательное поле Тип
. (root) Путь к корневому каталогу задания Spark в хранилище связанной службы. Да Папка
<Определяется пользователем> Путь к файлу записи задания Spark. Да Файлы
./jars Все файлы в этой папке передаются и помещаются в папку classpath Java для кластера. No Папка
./pyFiles Все файлы в этой папке передаются и помещаются в папку PYTHONPATH для кластера. No Папка
./files Все файлы в этой папке передаются и помещаются в рабочий каталог исполнителя. No Папка
./archives Все файлы в этой папке не сжаты. No Папка
./logs Папка, в которой содержатся журналы из кластера Spark. No Папка

Ниже приведен пример хранилища, содержащего два файла заданий Spark в хранилище BLOB-объектов Azure, на которое ссылается связанная служба HDInsight.

SparkJob1
	main.jar
	files
		input1.txt
		input2.txt
	jars
		package1.jar
		package2.jar
	logs
	
	archives
	
	pyFiles

SparkJob2
	main.py
	pyFiles
		scrip1.py
		script2.py
	logs
	
	archives
	
	jars
	
	files
	

Ознакомьтесь со следующими ссылками, в которых описаны способы преобразования данных другими способами: