Transformar dados executando um bloco de anotações Databricks

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

A Atividade do Bloco de Anotações do Azure Databricks em um pipeline executa um bloco de anotações Databricks em seu espaço de trabalho do Azure Databricks. Este artigo baseia-se no artigo de atividades de transformação de dados, que apresenta uma visão geral da transformação de dados e das atividades de transformação suportadas. O Azure Databricks é uma plataforma gerenciada para executar o Apache Spark.

Você pode criar um bloco de anotações Databricks com um modelo ARM usando JSON ou diretamente por meio da interface do usuário do Azure Data Factory Studio. Para obter um passo a passo de como criar uma atividade de bloco de anotações Databricks usando a interface do usuário, consulte o tutorial Executar um bloco de anotações Databricks com a Atividade de Bloco de Anotações Databricks no Azure Data Factory.

Adicionar uma atividade do Bloco de Anotações do Azure Databricks a um pipeline com interface do usuário

Para usar uma atividade do Bloco de Anotações para o Azure Databricks em um pipeline, conclua as seguintes etapas:

  1. Procure Bloco de Anotações no painel Atividades do pipeline e arraste uma atividade do Bloco de Anotações para a tela do pipeline.

  2. Selecione a nova atividade do Bloco de Anotações na tela, se ainda não estiver selecionada.

  3. Selecione a guia Azure Databricks para selecionar ou criar um novo serviço vinculado do Azure Databricks que executará a atividade do Bloco de Anotações.

    Mostra a interface do usuário de uma atividade do Bloco de Anotações.

  4. Selecione a guia Configurações e especifique o caminho do bloco de anotações a ser executado no Azure Databricks, os parâmetros básicos opcionais a serem passados para o bloco de anotações e quaisquer bibliotecas adicionais a serem instaladas no cluster para executar o trabalho.

    Mostra a interface do usuário da guia Configurações de uma atividade do Bloco de Anotações.

Definição de atividade do Databricks Notebook

Aqui está a definição JSON de exemplo de uma atividade de bloco de anotações Databricks:

{
    "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"
                }
            ]
        }
    }
}

Propriedades de atividade do Databricks Notebook

A tabela a seguir descreve as propriedades JSON usadas na definição JSON:

Property Descrição Obrigatório
nome Nome da atividade no pipeline. Sim
descrição Texto descrevendo o que a atividade faz. Não
tipo Para Databricks Notebook Activity, o tipo de atividade é DatabricksNotebook. Sim
linkedServiceName Nome do Serviço Vinculado Databricks no qual o bloco de anotações Databricks é executado. Para saber mais sobre esse serviço vinculado, consulte o artigo Serviços vinculados de computação. Sim
notebookPath O caminho absoluto do bloco de anotações a ser executado no espaço de trabalho Databricks. Este caminho deve começar com uma barra. Sim
baseParameters Uma matriz de pares Chave-Valor. Os parâmetros de base podem ser usados para cada atividade executada. Se o bloco de notas utilizar um parâmetro não especificado, será utilizado o valor predefinido do bloco de notas. Saiba mais sobre parâmetros em Blocos de Anotações Databricks. Não
bibliotecas Uma lista de bibliotecas a serem instaladas no cluster que executará o trabalho. Pode ser uma matriz de <string, objeto>. Não

Bibliotecas suportadas para atividades do Databricks

Na definição de atividade do Databricks acima, você especifica estes tipos de biblioteca: 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"
            }
        }
    ]
}

Para obter mais informações, consulte a documentação do Databricks para tipos de biblioteca.

Passando parâmetros entre notebooks e pipelines

Você pode passar parâmetros para blocos de anotações usando a propriedade baseParameters na atividade databricks.

Em certos casos, pode ser necessário repassar certos valores do notebook de volta para o serviço, que podem ser usados para controlar o fluxo (verificações condicionais) no serviço ou ser consumidos por atividades a jusante (o limite de tamanho é de 2 MB).

  1. Em seu bloco de anotações, você pode chamar dbutils.notebook.exit("returnValue") e o correspondente "returnValue" será retornado ao serviço.

  2. Você pode consumir a saída no serviço usando expressões como @{activity('databricks notebook activity name').output.runOutput}.

    Importante

    Se você estiver passando o objeto JSON, poderá recuperar valores anexando nomes de propriedade. Exemplo: @{activity('databricks notebook activity name').output.runOutput.PropertyName}

Como carregar uma biblioteca no Databricks

Você pode usar a interface do usuário do espaço de trabalho:

  1. Usar a interface do usuário do espaço de trabalho Databricks

  2. Para obter o caminho dbfs da biblioteca adicionada usando a interface do usuário, você pode usar a CLI do Databricks.

    Normalmente, as bibliotecas Jar são armazenadas em dbfs:/FileStore/jars ao usar a interface do usuário. Você pode listar tudo através da CLI: databricks fs ls dbfs:/FileStore/job-jars

Ou você pode usar a CLI do Databricks:

  1. Seguir Copiar a biblioteca usando a CLI do Databricks

  2. Usar a CLI do Databricks (etapas de instalação)

    Como exemplo, para copiar um JAR para dbfs: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar