Преобразование данных с помощью записной книжки Databricks

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

Совет

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

Действие Notebook Azure Databricks в конвейере запускает записную книжку Databricks в рабочей области Azure Databricks. Данная статья основана на материалах статьи о действиях преобразования данных , в которой приведен общий обзор преобразования данных и список поддерживаемых действий преобразования. Azure Databricks — это управляемая платформа для запуска Apache Spark.

Вы можете создать записную книжку Databricks в шаблоне ARM с помощью JSON или напрямую в пользовательском интерфейсе Фабрики данных Azure. Пошаговое руководство по созданию действия Notebook Databricks с помощью пользовательского интерфейса см. в руководстве по запуску записной книжки Databricks с помощью действия Notebook Databricks в Фабрике данных Azure.

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

Чтобы использовать действие Notebook для Azure Databricks в конвейере, выполните следующие шаги.

  1. Выполните поиск Notebook в панели "Действия" конвейера и перетащите действие Notebook на холст конвейера.

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

  3. Перейдите на вкладку Azure Databricks, чтобы выбрать или создать новую связанную службу Azure Databricks, которая будет выполнять действие Notebook.

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

  4. Перейдите на вкладку Параметры и укажите путь записной книжки для выполнения в Azure Databricks, необязательные базовые параметры, которые необходимо передать в записную книжку, и дополнительные библиотеки, которые будут установлены в кластере для выполнения задания.

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

Определение действия Databricks Notebook

Пример определения JSON для действия Databricks Notebook:

{
    "activity": {
        "name": "MyActivity",
        "description": "MyActivity description",
        "type": "DatabricksNotebook",
        "linkedServiceName": {
            "referenceName": "MyDatabricksLinkedservice",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "notebookPath": "/Users/user@example.com/ScalaExampleNotebook",
            "baseParameters": {
                "inputpath": "input/folder1/",
                "outputpath": "output/"
            },
            "libraries": [
                {
                "jar": "dbfs:/docs/library.jar"
                }
            ]
        }
    }
}

Свойства действия Databricks Notebook

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

Свойство Описание Обязательно
name Имя действия в конвейере. Да
description Описание действия. Нет
type Тип действия Databricks Notebook — DatabricksNotebook. Да
linkedServiceName Имя связанной службы Databricks, в которой запускается записная книжка Databricks. Дополнительные сведения об этой связанной службе см. в статье Вычислительные среды, поддерживаемые фабрикой данных Azure. Да
notebookPath Абсолютный путь записной книжки, которая будет запущена в рабочей области Databricks. Этот путь должен начинаться с косой черты. Да
baseParameters Массив пар "ключ-значение". Для каждого выполнения действия можно использовать базовые параметры. Если записная книжка принимает параметр, который не был указан, используется значение по умолчанию из записной книжки. Дополнительные сведения о параметрах Databricks Notebook см. здесь. Нет
libraries Список библиотек, которые должны быть установлены на кластере, на котором будет выполнено задание. Это может быть массив из <строк и объектов>. нет

Поддерживаемые библиотеки для действий Databricks

В приведенном выше определении действия Databricks необходимо указать следующие типы библиотек: jar, egg, whl, maven, pypi, cran.

{
    "libraries": [
        {
            "jar": "dbfs:/mnt/libraries/library.jar"
        },
        {
            "egg": "dbfs:/mnt/libraries/library.egg"
        },
        {
            "whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
        },
        {
            "whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
        },
        {
            "maven": {
                "coordinates": "org.jsoup:jsoup:1.7.2",
                "exclusions": [ "slf4j:slf4j" ]
            }
        },
        {
            "pypi": {
                "package": "simplejson",
                "repo": "http://my-pypi-mirror.com"
            }
        },
        {
            "cran": {
                "package": "ada",
                "repo": "https://cran.us.r-project.org"
            }
        }
    ]
}

Дополнительные сведения см. в документации Databricks по типам библиотек.

Передача параметров между записными книжками и конвейерами

Вы можете передавать параметры в записные книжки с помощью свойства baseParameters в действии Databricks.

Иногда может требоваться передать определенные значения из записной книжки обратно в службу для потока управления (условные проверки) в службе или для использования нисходящими действиями (ограничение размера — 2 МБ).

  1. В записной книжке можно вызвать dbutils.notebook.exit("returnValue"), и в службу будет возвращено соответствующее значение returnValue.

  2. Выходные данные в службе можно использовать с помощью выражения, такого как @{activity('databricks notebook activity name').output.runOutput}.

    Важно!

    При передаче объекта JSON значения можно получить путем добавления имен свойств. Например, @{activity('databricks notebook activity name').output.runOutput.PropertyName}.

Отправка библиотеки в Databricks

Вы можете использовать пользовательский интерфейс рабочей области:

  1. Использование пользовательского интерфейса рабочей области Databricks

  2. Чтобы получить путь к dbfs библиотеки, добавленной с помощью пользовательского интерфейса, можно использовать интерфейс командной строки Databricks.

    Обычно библиотеки Jar, добавленные с помощью пользовательского интерфейса, хранятся в каталоге dbfs:/FileStore/jars. Вы можете получить список всех библиотек, выполнив следующую команду в интерфейсе командной строки: databricks fs ls dbfs:/FileStore/job-jars.

Или можно использовать интерфейс командной строки Databricks:

  1. Затем выполните Копирование библиотеки с помощью интерфейса командной строки Databricks

  2. Используйте интерфейс командной строки Databricks (действия по установке)

    Например, чтобы скопировать JAR-файл в dbfs: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar