Transformar dados ao executar uma atividade python 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 tudo, desde o movimento de dados à ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

A Atividade Python do Azure Databricks num pipeline executa um ficheiro Python no cluster do Azure Databricks. Este artigo baseia-se no artigo de atividades de transformação de dados , que apresenta uma descrição geral da transformação de dados e das atividades de transformação suportadas. O Azure Databricks é uma plataforma gerida 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 python para o Azure Databricks a um pipeline com a IU

Para utilizar uma atividade Python para o Azure Databricks num pipeline, conclua os seguintes passos:

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

  2. Selecione a nova atividade python na tela, se ainda não estiver selecionada.

  3. Selecione o separador Azure Databricks para selecionar ou criar um novo serviço ligado do Azure Databricks que irá executar a atividade python.

    Mostra a IU de uma atividade python.

  4. Selecione o separador Definições e especifique o caminho no Azure Databricks para um ficheiro Python a ser executado, parâmetros opcionais a serem transmitidos e quaisquer bibliotecas adicionais a serem instaladas no cluster para executar a tarefa.

    Mostra a IU do separador Definições de uma atividade python.

Definição de atividade python do Databricks

Eis a definição JSON de exemplo de uma Atividade Python do Databricks:

{
    "activity": {
        "name": "MyActivity",
        "description": "MyActivity description",
        "type": "DatabricksSparkPython",
        "linkedServiceName": {
            "referenceName": "MyDatabricksLinkedService",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "pythonFile": "dbfs:/docs/pi.py",
            "parameters": [
                "10"
            ],
            "libraries": [
                {
                    "pypi": {
                        "package": "tensorflow"
                    }
                }
            ]
        }
    }
}

Propriedades da atividade python do Databricks

A tabela seguinte descreve as propriedades JSON utilizadas na definição JSON:

Propriedade Descrição Necessário
name Nome da atividade no pipeline. Sim
descrição Texto que descreve o que a atividade faz. No
tipo Para a Atividade Python do Databricks, o tipo de atividade é DatabricksSparkPython. Sim
linkedServiceName Nome do Serviço Ligado do Databricks no qual a atividade python é executada. Para saber mais sobre este serviço ligado, veja o artigo Serviços ligados de computação . Sim
pythonFile O URI do ficheiro Python a ser executado. Apenas os caminhos do DBFS são suportados. Sim
parâmetros Parâmetros da linha de comandos que serão transmitidos para o ficheiro Python. Esta é uma matriz de cadeias. Não
bibliotecas Uma lista de bibliotecas a instalar no cluster que irá executar a tarefa. Pode ser uma matriz de <cadeia, objeto> No

Bibliotecas suportadas para atividades do Databricks

Na definição de atividade do Databricks acima, especifique estes tipos de biblioteca: jar, ovo, 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 detalhes , veja a documentação do Databricks para tipos de biblioteca.

Como carregar uma biblioteca no Databricks

Pode utilizar a IU da Área de Trabalho:

  1. Utilizar a IU da área de trabalho do Databricks

  2. Para obter o caminho dbfs da biblioteca adicionada com a IU, pode utilizar a CLI do Databricks.

    Normalmente, as bibliotecas Jar são armazenadas em dbfs:/FileStore/jars ao utilizar a IU. Pode listar tudo através da CLI: databricks fs ls dbfs:/FileStore/job-jars

Em alternativa, pode utilizar a CLI do Databricks:

  1. Siga Copiar a biblioteca com a CLI do Databricks

  2. Utilizar a CLI do Databricks (passos de instalação)

    Por exemplo, para copiar um JAR para dbfs: dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar