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:
Procure Bloco de Anotações no painel Atividades do pipeline e arraste uma atividade do Bloco de Anotações para a tela do pipeline.
Selecione a nova atividade do Bloco de Anotações na tela, se ainda não estiver selecionada.
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.
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.
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).
Em seu bloco de anotações, você pode chamar dbutils.notebook.exit("returnValue") e o correspondente "returnValue" será retornado ao serviço.
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:
Usar a interface do usuário do espaço de trabalho Databricks
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:
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