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

Para uma introdução e demonstração de onze minutos desta funcionalidade, veja o seguinte vídeo:

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

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

  1. Procure 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 ainda não estiver selecionada.

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

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

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

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

Definição de atividade do Databricks Jar

Aqui está a definição JSON de exemplo de uma atividade de Jar 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 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 Jar Activity, o tipo de atividade é DatabricksSparkJar. Sim
linkedServiceName Nome do Serviço Vinculado Databricks no qual a atividade Jar é executada. Para saber mais sobre esse serviço vinculado, consulte o artigo Serviços vinculados de computação. 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
parâmetros Parâmetros que serão passados para o método principal. Esta 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 <string, objeto> Sim (pelo menos um contendo o método mainClassName)

Nota

Problema conhecido - Ao usar o mesmo cluster interativo para executar atividades simultâneas do Databricks Jar (sem reinicialização do cluster), há um problema conhecido no Databricks, onde os parâmetros da 1ª atividade também serão usados pelas seguintes atividades. Daí resultando em parâmetros incorretos sendo passados para os trabalhos subsequentes. Para atenuar isso, use um cluster de tarefas.

Bibliotecas suportadas para atividades de databricks

Na definição de atividade Databricks anterior, 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 espaço de trabalho:

  1. Usar a interface do usuário do espaço de trabalho 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 tudo através da CLI: databricks fs ls dbfs:/FileStore/job-jars

Ou você pode usar a CLI do Databricks:

  1. Seguir Copiar a biblioteca usando a CLI do Databricks

  2. 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

Para uma introdução de onze minutos e demonstração deste recurso, assista ao vídeo.