Transforme dados usando a atividade do Spark no Azure Data Factory e no Synapse Analytics
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 Spark em uma fábrica de dados e pipelines Synapse executa um programa Spark por conta própria ou sob demanda cluster HDInsight. 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. Quando você usa um serviço vinculado do Spark sob demanda, o serviço cria automaticamente um cluster do Spark para você processar os dados no momento certo e, em seguida, exclui o cluster assim que o processamento for concluído.
Adicionar uma atividade do Spark a um pipeline com a interface do usuário
Para usar uma atividade do Spark em um pipeline, conclua as seguintes etapas:
Procure Spark no painel Atividades do pipeline e arraste uma atividade do Spark para a tela do pipeline.
Selecione a nova atividade do Spark na tela, se ainda não estiver selecionada.
Selecione a guia Cluster HDI para selecionar ou criar um novo serviço vinculado a um cluster HDInsight que será usado para executar a atividade do Spark.
Selecione a guia Script/Jar para selecionar ou criar um novo serviço vinculado a um trabalho vinculado a uma conta de Armazenamento do Azure que hospedará seu script. Especifique um caminho para o arquivo a ser executado lá. Você também pode configurar detalhes avançados, incluindo um usuário proxy, configuração de depuração e argumentos e parâmetros de configuração do Spark a serem passados para o script.
Propriedades da atividade de faísca
Aqui está a definição JSON de exemplo de uma atividade Spark:
{
"name": "Spark Activity",
"description": "Description",
"type": "HDInsightSpark",
"linkedServiceName": {
"referenceName": "MyHDInsightLinkedService",
"type": "LinkedServiceReference"
},
"typeProperties": {
"sparkJobLinkedService": {
"referenceName": "MyAzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"rootPath": "adfspark",
"entryFilePath": "test.py",
"sparkConfig": {
"ConfigItem1": "Value"
},
"getDebugInfo": "Failure",
"arguments": [
"SampleHadoopJobArgument1"
]
}
}
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 Spark Activity, o tipo de atividade é HDInsightSpark. | Sim |
linkedServiceName | Nome do Serviço Vinculado do HDInsight Spark no qual o programa Spark é executado. Para saber mais sobre esse serviço vinculado, consulte o artigo Serviços vinculados de computação. | Sim |
SparkJobLinkedService | O serviço vinculado do Armazenamento do Azure que contém o arquivo de trabalho, as dependências e os logs do Spark. Somente o Armazenamento de Blobs do Azure e os serviços vinculados ADLS Gen2 são suportados aqui. Se você não especificar um valor para essa propriedade, o armazenamento associado ao cluster HDInsight será usado. O valor dessa propriedade só pode ser um serviço vinculado do Armazenamento do Azure. | Não |
rootPath | O contêiner e a pasta de Blob do Azure que contém o arquivo Spark. O nome do arquivo diferencia maiúsculas de minúsculas. Consulte a seção de estrutura de pastas (próxima seção) para obter detalhes sobre a estrutura dessa pasta. | Sim |
entryFilePath | Caminho relativo para a pasta raiz do código/pacote do Spark. O arquivo de entrada deve ser um arquivo Python ou um arquivo .jar. | Sim |
className | Classe principal Java/Spark do aplicativo | Não |
Argumentos | Uma lista de argumentos de linha de comando para o programa Spark. | Não |
proxyUser | A conta de usuário a ser representada para executar o programa Spark | Não |
sparkConfig | Especifique valores para as propriedades de configuração do Spark listadas no tópico: Configuração do Spark - Propriedades do aplicativo. | Não |
getDebugInfo | Especifica quando os arquivos de log do Spark são copiados para o armazenamento do Azure usado pelo cluster HDInsight (ou) especificado pelo sparkJobLinkedService. Valores permitidos: Nenhum, Sempre ou Falha. Valor padrão: Nenhum. | Não |
Estrutura de pastas
Os trabalhos de faísca são mais extensíveis do que os trabalhos de porco/colmeia. Para trabalhos do Spark, você pode fornecer várias dependências, como pacotes jar (colocados no Java CLASSPATH), arquivos Python (colocados no PYTHONPATH) e quaisquer outros arquivos.
Crie a seguinte estrutura de pastas no armazenamento de Blob do Azure referenciado pelo serviço vinculado HDInsight. Em seguida, carregue arquivos dependentes para as subpastas apropriadas na pasta raiz representada por entryFilePath. Por exemplo, carregue arquivos Python para a subpasta pyFiles e arquivos jar para a subpasta jars da pasta raiz. No tempo de execução, o serviço espera a seguinte estrutura de pastas no armazenamento de Blob do Azure:
Caminho | Description | Obrigatório | Type |
---|---|---|---|
. (raiz) |
O caminho raiz do trabalho do Spark no serviço vinculado de armazenamento | Sim | Pasta |
<definido pelo usuário > | O caminho apontando para o arquivo de entrada do trabalho do Spark | Sim | Ficheiro |
./frascos | Todos os arquivos sob esta pasta são carregados e colocados no classpath Java do cluster | Não | Pasta |
./pyArquivos | Todos os arquivos sob esta pasta são carregados e colocados no PYTHONPATH do cluster | Não | Pasta |
./ficheiros | Todos os arquivos sob esta pasta são carregados e colocados no diretório de trabalho do executor | Não | Pasta |
./Arquivos | Todos os arquivos nesta pasta são descompactados | Não | Pasta |
./logs | A pasta que contém logs do cluster Spark. | Não | Pasta |
Aqui está um exemplo de um armazenamento que contém dois arquivos de trabalho do Spark no Armazenamento de Blob do Azure referenciado pelo serviço vinculado do HDInsight.
SparkJob1
main.jar
files
input1.txt
input2.txt
jars
package1.jar
package2.jar
logs
archives
pyFiles
SparkJob2
main.py
pyFiles
scrip1.py
script2.py
logs
archives
jars
files
Conteúdos relacionados
Consulte os seguintes artigos que explicam como transformar dados de outras maneiras: