Tutorial: Criar uma definição de trabalho do Apache Spark no Synapse Studio
Este tutorial demonstra como usar o Synapse Studio para criar definições de trabalho do Apache Spark e depois enviá-las a um pool do Apache Spark sem servidor.
Este tutorial cobre as seguintes tarefas:
- Criar uma definição de trabalho do Apache Spark para PySpark (Python)
- Criar uma definição de trabalho do Apache Spark para Spark (Scala)
- Criar uma definição de trabalho do Apache Spark para .NET Spark (C#/F#)
- Criar uma definição de trabalho importando um arquivo JSON
- Como exportar um arquivo de definição de trabalho do Apache Spark para o local
- Enviar uma definição de trabalho do Apache Spark como um trabalho em lotes
- Adicionar uma definição de trabalho do Apache Spark no pipeline
Pré-requisitos
Antes de iniciar este tutorial, verifique se você atende aos seguintes requisitos:
- Um workspace do Azure Synapse Analytics. Para obter instruções, confira Criar um workspace do Azure Synapse Analytics.
- Um Pool do Apache Spark sem servidor.
- Uma conta de armazenamento do ADLS Gen2. Você precisa ser o Colaborador de Dados do Blob de Armazenamento do sistema de arquivos ADLS Gen2 com o qual deseja trabalhar. Se não for, você precisará adicionar a permissão manualmente.
- Se você não quiser usar o armazenamento padrão do workspace, vincule a conta de armazenamento do ADLS Gen2 necessária no Synapse Studio.
Criar uma definição de trabalho do Apache Spark para PySpark (Python)
Nesta seção, você cria uma definição de trabalho do Apache Spark para PySpark (Python).
Abra o Synapse Studio.
Você pode acessar Arquivos de exemplo para criar definições de trabalho do Apache Spark a fim de baixar arquivos de exemplo para python.zip, descompactar o pacote compactado e extrair os arquivos wordcount.py e shakespeare.txt.
Selecione Dados ->Vinculados ->Azure Data Lake Storage Gen2 e carregue wordcount.py e shakespeare.txt em seu sistema de arquivos do ADLS Gen2.
Selecione o hub Desenvolver, escolha o ícone " +" e selecione Definição de trabalho do Spark para criar essa definição de trabalho.
Selecione PySpark (Python) na lista suspensa Linguagem na janela principal de definição de trabalho do Apache Spark.
Preencha as informações para a definição de trabalho do Apache Spark.
Propriedade Descrição Nome da definição do trabalho Insira um nome para a definição de trabalho do Apache Spark. Esse nome pode ser atualizado a qualquer momento até que seja publicado.
Exemplo:job definition sample
Arquivo de definição principal O arquivo principal usado para o trabalho. Selecione um arquivo PY do seu armazenamento. Você pode selecionar Carregar arquivo para carregar o arquivo em uma conta de armazenamento.
Exemplo:abfss://…/path/to/wordcount.py
Argumentos de linha de comando Argumentos opcionais para o trabalho.
Amostra:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
Observação: dois argumentos para a definição de trabalho de exemplo são separados por um espaço.Arquivos de referência Arquivos adicionais usados para referência no arquivo de definição principal. Você pode selecionar Carregar arquivo para carregar o arquivo em uma conta de armazenamento. Pool do Spark O trabalho será enviado para o pool do Apache Spark selecionado. Versão do Spark A versão do Apache Spark que o pool do Apache Spark está executando. Executores Número de executores a serem fornecidos no pool do Apache Spark especificado para o trabalho. Tamanho do executor Número de núcleos e memória a serem usados para os executores fornecidos no pool do Apache Spark especificado para o trabalho. Tamanho do driver Número de núcleos e memória a serem usados para o driver fornecido no pool do Apache Spark especificado para o trabalho. Configuração do Apache Spark Personalize as configurações adicionando as propriedades abaixo. Se você não adicionar uma propriedade, o Azure Synapse usará o valor padrão quando aplicável. Selecione Publicar para salvar a definição de trabalho do Apache Spark.
Criar uma definição de trabalho do Apache Spark para o Apache Spark (Scala)
Nesta seção, você cria uma definição de trabalho do Apache Spark para o Apache Spark (Scala).
Abra o Azure Synapse Studio.
Você pode acessar Arquivos de exemplo para criar definições de trabalho do Apache Spark a fim de baixar arquivos de exemplo para scala.zip, descompactar o pacote compactado e extrair os arquivos wordcount.jar e shakespeare.txt.
Selecione Dados ->Vinculados ->Azure Data Lake Storage Gen2 e carregue wordcount.jar e shakespeare.txt em seu sistema de arquivos do ADLS Gen2.
Selecione o hub Desenvolver, escolha o ícone " +" e selecione Definição de trabalho do Spark para criar essa definição de trabalho. (A imagem de exemplo é a mesma da etapa 4 de Criar uma definição de trabalho do Apache Spark (Python) para PySpark.)
Selecione Spark (Scala) na lista suspensa Linguagem na janela principal de definição de trabalho do Apache Spark.
Preencha as informações para a definição de trabalho do Apache Spark. Você pode copiar as informações de exemplo.
Propriedade Descrição Nome da definição do trabalho Insira um nome para a definição de trabalho do Apache Spark. Esse nome pode ser atualizado a qualquer momento até que seja publicado.
Exemplo:scala
Arquivo de definição principal O arquivo principal usado para o trabalho. Selecione um arquivo JAR do seu armazenamento. Você pode selecionar Carregar arquivo para carregar o arquivo em uma conta de armazenamento.
Exemplo:abfss://…/path/to/wordcount.jar
Nome da classe principal O identificador totalmente qualificado ou a classe principal que está no arquivo de definição principal.
Exemplo:WordCount
Argumentos de linha de comando Argumentos opcionais para o trabalho.
Amostra:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
Observação: dois argumentos para a definição de trabalho de exemplo são separados por um espaço.Arquivos de referência Arquivos adicionais usados para referência no arquivo de definição principal. Você pode selecionar Carregar arquivo para carregar o arquivo em uma conta de armazenamento. Pool do Spark O trabalho será enviado para o pool do Apache Spark selecionado. Versão do Spark A versão do Apache Spark que o pool do Apache Spark está executando. Executores Número de executores a serem fornecidos no pool do Apache Spark especificado para o trabalho. Tamanho do executor Número de núcleos e memória a serem usados para os executores fornecidos no pool do Apache Spark especificado para o trabalho. Tamanho do driver Número de núcleos e memória a serem usados para o driver fornecido no pool do Apache Spark especificado para o trabalho. Configuração do Apache Spark Personalize as configurações adicionando as propriedades abaixo. Se você não adicionar uma propriedade, o Azure Synapse usará o valor padrão quando aplicável. Selecione Publicar para salvar a definição de trabalho do Apache Spark.
Criar uma definição de trabalho do Apache Spark para .NET Spark (C#/F#)
Nesta seção, você criará uma definição de trabalho do Apache Spark para .NET Spark (C#/F#).
Abra o Azure Synapse Studio.
Você pode acessar Arquivos de exemplo para criar definições de trabalho do Apache Spark a fim de baixar arquivos de exemplo para dotnet.zip, descompactar o pacote compactado e extrair os arquivos wordcount.jar e shakespeare.txt.
Selecione Dados ->Vinculados ->Azure Data Lake Storage Gen2 e carregue wordcount.zip e shakespeare.txt em seu sistema de arquivos do ADLS Gen2.
Selecione o hub Desenvolver, escolha o ícone " +" e selecione Definição de trabalho do Spark para criar essa definição de trabalho. (A imagem de exemplo é a mesma da etapa 4 de Criar uma definição de trabalho do Apache Spark (Python) para PySpark.)
Selecione .NET Spark(C#/F#) na lista suspensa Linguagem na janela principal de definição de trabalho do Apache Spark.
Preencha as informações para a definição de trabalho do Apache Spark. Você pode copiar as informações de exemplo.
Propriedade Descrição Nome da definição do trabalho Insira um nome para a definição de trabalho do Apache Spark. Esse nome pode ser atualizado a qualquer momento até que seja publicado.
Exemplo:dotnet
Arquivo de definição principal O arquivo principal usado para o trabalho. Selecione um arquivo zip que contenha seu aplicativo .NET para Apache Spark (ou seja, o arquivo executável principal, DLLs que contenham funções definidas pelo usuário e outros arquivos necessários) do seu armazenamento. Você pode selecionar Carregar arquivo para carregar o arquivo em uma conta de armazenamento.
Exemplo:abfss://…/path/to/wordcount.zip
Arquivo executável principal O arquivo executável principal no arquivo zip de definição principal.
Exemplo:WordCount
Argumentos de linha de comando Argumentos opcionais para o trabalho.
Amostra:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
Observação: dois argumentos para a definição de trabalho de exemplo são separados por um espaço.Arquivos de referência Arquivos adicionais requeridos pelos nós de trabalho para execução do aplicativo .NET para Apache Spark que não estão incluídos no arquivo ZIP de definição principal (ou seja, jars dependentes, DLLs de funções definidas pelo usuário adicionais e outros arquivos de configuração). Você pode selecionar Carregar arquivo para carregar o arquivo em uma conta de armazenamento. Pool do Spark O trabalho será enviado para o pool do Apache Spark selecionado. Versão do Spark A versão do Apache Spark que o pool do Apache Spark está executando. Executores Número de executores a serem fornecidos no pool do Apache Spark especificado para o trabalho. Tamanho do executor Número de núcleos e memória a serem usados para os executores fornecidos no pool do Apache Spark especificado para o trabalho. Tamanho do driver Número de núcleos e memória a serem usados para o driver fornecido no pool do Apache Spark especificado para o trabalho. Configuração do Apache Spark Personalize as configurações adicionando as propriedades abaixo. Se você não adicionar uma propriedade, o Azure Synapse usará o valor padrão quando aplicável. Selecione Publicar para salvar a definição de trabalho do Apache Spark.
Observação
Para a configuração do Apache Spark, se a definição de trabalho do Apache Spark da configuração do Apache Spark não fizer nada especial, a configuração padrão será usada ao executar o trabalho.
Criar uma definição de trabalho do Apache Spark importando um arquivo JSON
Importe um arquivo JSON local existente para o workspace do Azure Synapse no menu Ações (...) do Explorador de definições de trabalho do Apache Spark para criar uma definição de trabalho do Apache Spark.
A definição de trabalho do Spark é totalmente compatível com a API do Livy. Você pode adicionar mais parâmetros a outras propriedades do Livy (Documentação do Livy – API REST – apache.org) no arquivo JSON local. Especifique também os parâmetros relacionados à configuração do Spark na propriedade config, conforme mostrado abaixo. Em seguida, importe o arquivo JSON novamente para criar uma definição de trabalho do Apache Spark para o trabalho em lotes. Exemplo de JSON para importação de definição do Spark:
{
"targetBigDataPool": {
"referenceName": "socdemolarge",
"type": "BigDataPoolReference"
},
"requiredSparkVersion": "2.3",
"language": "scala",
"jobProperties": {
"name": "robinSparkDefinitiontest",
"file": "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/wordcount.jar",
"className": "WordCount",
"args": [
"adl://socdemo-c14.azuredatalakestore.net/users/robinyao/shakespeare.txt"
],
"jars": [],
"files": [],
"conf": {
"spark.dynamicAllocation.enabled": "false",
"spark.dynamicAllocation.minExecutors": "2",
"spark.dynamicAllocation.maxExecutors": "2"
},
"numExecutors": 2,
"executorCores": 8,
"executorMemory": "24g",
"driverCores": 8,
"driverMemory": "24g"
}
}
Exportar um arquivo de definição de trabalho do Apache Spark existente
Exporte os arquivos de definição de trabalho do Apache Spark existentes para o local no menu Ações (...) do Explorador de Arquivos. Você pode atualizar o arquivo JSON ainda mais em relação a propriedades adicionais do Livy e importá-lo novamente para criar uma definição de trabalho, se necessário.
Enviar uma definição de trabalho do Apache Spark como um trabalho em lotes
Depois de criar uma definição de trabalho do Apache Spark, você pode enviá-la para um pool do Apache Spark. Verifique se você é o Colaborador dos Dados do Blob de Armazenamento do sistema de arquivos ADLS Gen2 com o qual deseja trabalhar. Se não for, você precisará adicionar a permissão manualmente.
Cenário 1: Enviar uma definição de trabalho do Apache Spark
Abra uma janela de definição de trabalho do Apache Spark selecionando-a.
Selecione o botão Enviar para enviar o projeto para o Pool do Apache Spark selecionado. Selecione a guia URL de monitoramento do Spark para ver o LogQuery do aplicativo Apache Spark.
Cenário 2: Exibir o progresso da execução do trabalho do Apache Spark
Selecione Monitorar e escolha a opção Aplicativos Apache Spark. Você pode encontrar o aplicativo Apache Spark enviado.
Selecione um aplicativo Apache Spark e a janela de trabalho SparkJobDefinition será exibida. Você pode exibir o andamento da execução do trabalho aqui.
Cenário 3: verificar arquivo de saída
Selecione Dados ->Vinculados ->Azure Data Lake Storage Gen2 (hozhaobdbj) e abra a pasta resultado criada anteriormente. Você pode acessar essa pasta e verificar se a saída foi gerada.
Adicionar uma definição de trabalho do Apache Spark no pipeline
Nesta seção, você adiciona uma definição de trabalho do Apache Spark no pipeline.
Abra uma definição de trabalho existente do Apache Spark.
Selecione o ícone no canto superior direito da definição de trabalho do Apache Spark e escolha Pipeline existente ou Novo pipeline. Consulte a página do Pipeline para obter mais informações.
Próximas etapas
Em seguida, você pode usar o Azure Synapse Studio para criar conjuntos de dados do Power BI e gerenciar dados do Power BI. Avance para o artigo Vincular um workspace do Power BI a um workspace do Azure Synapse para saber mais.