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:
Procure Notebook no painel Atividades do pipeline e arraste uma atividade Notebook para a tela do pipeline.
Selecione a nova atividade Notebook na tela se ela ainda não estiver selecionada.
Selecione a guia Azure Databricks para escolher ou criar um serviço vinculado do Azure Databricks que executará a atividade de Notebook.
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.
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).
No notebook, você pode chamar dbutils.notebook.exit("returnValue") e o "returnValue" correspondente será retornado para o serviço.
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:
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:
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