Transformar dados executando um notebook do Databricks

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

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

A atividade de Notebook do Azure Databricks em um pipeline executa um notebook do Databricks no workspace do Azure Databricks. Este artigo se baseia no artigo sobre atividades de transformação de dados que apresenta uma visão geral da transformação de dados e as atividades de transformação permitidas. O Azure Databricks é uma plataforma gerenciada para executar o Apache Spark.

Você pode criar um notebook do Databricks com um modelo do ARM usando JSON ou diretamente por meio da interface do usuário do Estúdio do Azure Data Factory. Para ver uma explicação passo a passo de como criar uma atividade de notebook do Databricks usando a interface do usuário, consulte o tutorial Executar um notebook do Databricks com a Atividade de Notebook do Databricks no Azure Data Factory.

Adicionar uma atividade de Notebook do Azure Databricks a um pipeline com a interface do usuário

Para usar uma atividade de Notebook do Azure Databricks em um pipeline, realize as seguintes etapas:

  1. Procure Notebook no painel Atividades do pipeline e arraste uma atividade Notebook para a tela do pipeline.

  2. Selecione a nova atividade Notebook na tela se ela ainda não estiver selecionada.

  3. Selecione a guia Azure Databricks para escolher ou criar um serviço vinculado do Azure Databricks que executará a atividade de Notebook.

    Mostra a interface do usuário para uma atividade do Notebook.

  4. Selecione guia Configurações e especifique o caminho do notebook a ser executado no Azure Databricks, os parâmetros base opcionais a serem passados para o notebook e as bibliotecas adicionais a serem instaladas no cluster para executar o trabalho.

    Mostra a interface do usuário da guia Configurações para uma atividade do Notebook.

Definição de atividade do Notebook Databricks

A seguir está a definição JSON de exemplo de uma Atividade de Notebook do 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 da atividade de Notebook do Databricks

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

Propriedade Descrição Obrigatório
name Nome da atividade no pipeline. Sim
descrição Texto que descreve o que a atividade faz. Não
type Para Atividade de Notebook do Databricks, o tipo da atividade é DatabricksNotebook. Sim
linkedServiceName Nome do serviço vinculado do Databricks no qual o notebook do Databricks executa. Para saber mais sobre esse serviço vinculado, consulte o artigo Compute linked services (Serviços de computação vinculados). Sim
notebookPath O caminho absoluto do notebook a ser executado no workspace do Databricks. Esse caminho deve começar com uma barra. Yes
baseParameters Uma matriz de pares chave-valor. Parâmetros básicos podem ser utilizados para cada execução de atividade. Se o notebook utilizar um parâmetro que não for especificado, será usado o valor padrão do notebook. Encontre mais informações sobre os parâmetros em Notebooks do Databricks. Não
bibliotecas Uma lista de bibliotecas a serem instaladas no cluster, que executará o trabalho. Pode ser uma matriz de <string, object>. No

Bibliotecas com suporte para atividades do Databricks

Na definição da atividade acima do Databricks, você especifica esses 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 os parâmetros para notebooks usando a propriedade baseParameters na atividade do databricks.

Em alguns casos, talvez seja necessário passar determinados valores do notebook de volta para o serviço, que pode ser usado para o fluxo de controle (verificações condicionais) no serviço ou ser consumido por atividades downstream (o limite de tamanho é de 2 MB).

  1. No notebook, você pode chamar dbutils.notebook.exit("returnValue") e o "returnValue" correspondente será retornado para o serviço.

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

    Importante

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

Como carregar uma biblioteca no Databricks

Você pode usar a interface do usuário do Workspace:

  1. Usar a interface do usuário do workspace do 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 todos os por meio da CLI: databricks fs ls dbfs:/FileStore/job-jars

Ou você pode usar a CLI do Databricks:

  1. Siga Copie a biblioteca usando a CLI do Databricks

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

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