Transformar dados executando uma atividade de Jar no Azure 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 Jar do Azure Databricks em um pipeline executa um Jar de Spark no cluster 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.

Para ver uma introdução de 11 minutos e uma demonstração desse recurso, assista ao seguinte vídeo:

Adicionar uma atividade Jar para Azure Databricks a um pipeline com a interface do usuário

Para usar uma atividade Jar para Azure Databricks em um pipeline, realize as seguintes etapas:

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

  2. Selecione a nova atividade Jar 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 Jar.

    Shows the UI for a Jar activity.

  4. Selecione guia Configurações e especifique um nome de classe a ser executado no Azure Databricks, os parâmetros opcionais a serem passados para o Jar e as bibliotecas a serem instaladas no cluster para executar o trabalho.

    Shows the UI for the Settings tab for a Jar activity.

Definição de atividade do Databricks Jar

A seguir está a definição JSON de exemplo de uma Atividade de Jar do Databricks:

{
    "name": "SparkJarActivity",
    "type": "DatabricksSparkJar",
    "linkedServiceName": {
        "referenceName": "AzureDatabricks",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "mainClassName": "org.apache.spark.examples.SparkPi",
        "parameters": [ "10" ],
        "libraries": [
            {
                "jar": "dbfs:/docs/sparkpi.jar"
            }
        ]
    }
}

Propriedades de atividade do Databricks Jar

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 a Atividade do Databricks Jar, o tipo de atividade é DatabricksSparkJar. Sim
linkedServiceName Nome do serviço vinculado ao Databricks no qual a atividade de Jar é executado. Para saber mais sobre esse serviço vinculado, consulte o artigo Compute linked services (Serviços de computação vinculados). Sim
mainClassName O nome completo da classe que contém o método principal a ser executado. Essa classe deve estar contida em um JAR fornecido como uma biblioteca. Um arquivo JAR pode conter várias classes. Cada uma das classes pode conter um método principal. Sim
parameters Parâmetros que serão passados ao método principal. Essa propriedade é uma matriz de cadeias de caracteres. Não
bibliotecas Uma lista de bibliotecas a serem instaladas no cluster, que executará o trabalho. Pode ser uma matriz de <cadeia de caracteres, objeto> Sim (pelo menos um contendo o método mainClassName)

Observação

Problema conhecido – ao usar o mesmo cluster Interativo para executar atividades simultâneas do Databricks Jar (sem reinicialização de cluster), há um problema conhecido no Databricks em que os parâmetros da 1ª atividade também serão usados pelas atividades a seguir. Portanto, resultando em parâmetros incorretos sendo passados para os trabalhos subsequentes. Para atenuar isso, use um cluster de trabalho.

Bibliotecas com suporte para atividades do databricks

Na definição de atividade anterior do Databricks, você especificou estes tipos de biblioteca: jar, egg, maven, pypi, cran.

{
    "libraries": [
        {
            "jar": "dbfs:/mnt/libraries/library.jar"
        },
        {
            "egg": "dbfs:/mnt/libraries/library.egg"
        },
        {
            "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.

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

Para ver uma introdução de 11 minutos e uma demonstração desse recurso, assista ao vídeo.