Compartilhar via


Transformar dados por meio da execução de um notebook do Databricks

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

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. Azure Databricks é uma plataforma gerenciada para executar o Apache Spark.

Você pode criar um bloco de anotações do 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 notebook do Databricks usando a interface do usuário, faça referência ao tutorial Executar um notebook do Databricks com a Atividade do Bloco de Anotações do Databricks em Azure Data Factory.

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

Para usar uma atividade do Notebook para Azure Databricks em um pipeline, conclua 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 do Notebook na tela se ela ainda não estiver selecionada.

  3. Selecione a guia Azure Databricks para selecionar ou criar um novo serviço vinculado Azure Databricks que executará a atividade notebook.

    Mostra a interface para uma atividade de Notebook.

  4. Selecione a guia Settings e especifique o caminho do notebook a ser executado no Azure Databricks, parâmetros base opcionais que devem ser passados para o notebook e quaisquer outras bibliotecas que devem ser instaladas no cluster para a execução do trabalho.

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

Definição de atividade do Notebook Databricks

Aqui está a definição JSON de exemplo de uma atividade do 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
nome Nome da atividade no pipeline. Sim
descrição Texto que descreve o que a atividade faz. Não
tipo Para a atividade Databricks Notebook, o tipo de atividade é DatabricksNotebook. Sim
nomeDoServiçoVinculado 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. Sim
baseParameters Uma matriz de pares chave-valor. Parâmetros básicos podem ser utilizados para cada execução de atividade. Se o notebook usa um parâmetro que não é especificado, o valor padrão do notebook será usado. 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>. Não

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 parâmetros para notebooks usando a propriedade baseParameters na atividade do Databricks.

Em alguns casos, talvez seja necessário retornar determinados valores do notebook de volta para o serviço, os quais podem ser usados para o fluxo de controle (verificações condicionais) no serviço ou serem consumidos por atividades subsequentes (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ões como @{activity('databricks notebook activity name').output.runOutput}.

    Importante

    Se você estiver passando o objeto JSON, é possível recuperar valores acrescentando 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 Workspace:

  1. Usar a IU 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