Transformar os dados na nuvem usando uma atividade Spark no Azure Data Factory
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!
Neste tutorial, você pode usar o Portal do Azure para criar um pipeline do Azure Data Factory. Este pipeline transforma os dados usando uma atividade Spark e um serviço vinculado do Azure HDInsight sob demanda.
Neste tutorial, você realizará os seguintes procedimentos:
- Criar um data factory.
- Crie um pipeline que usa uma atividade Spark.
- Dispare uma execução de pipeline.
- Monitorar a execução de pipeline.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
- Conta de Armazenamento do Azure. Você cria um script Python e um arquivo de entrada e os carrega no Armazenamento do Azure. A saída do programa Spark é armazenada nessa conta de armazenamento. O cluster do Spark sob demanda usa a mesma conta de armazenamento que o respectivo armazenamento primário.
Observação
O HDInsight dá suporte somente a contas de armazenamento para uso geral com a camada Standard. Garanta que a conta não seja uma conta de armazenamento Premium ou somente de Blob.
- Azure PowerShell. Siga as instruções em Como instalar e configurar o Azure PowerShell.
Carregar o script Python em sua conta de Armazenamento de Blobs
Crie um arquivo de Python chamado WordCount_Spark.py com o seguinte conteúdo:
import sys from operator import add from pyspark.sql import SparkSession def main(): spark = SparkSession\ .builder\ .appName("PythonWordCount")\ .getOrCreate() lines = spark.read.text("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/inputfiles/minecraftstory.txt").rdd.map(lambda r: r[0]) counts = lines.flatMap(lambda x: x.split(' ')) \ .map(lambda x: (x, 1)) \ .reduceByKey(add) counts.saveAsTextFile("wasbs://adftutorial@<storageaccountname>.blob.core.windows.net/spark/outputfiles/wordcount") spark.stop() if __name__ == "__main__": main()
Substitua <storageAccountName> pelo nome da sua conta de Armazenamento do Azure. Em seguida, salve o arquivo.
No Armazenamento de Blobs do Azure, crie um contêiner denominado adftutorial, se ele não existir.
Crie uma pasta chamada spark.
Crie uma subpasta chamada script na pasta spark.
Carregue o arquivo WordCount_Spark.py na subpasta script.
Carregue o arquivo de entrada
- Crie um arquivo chamado minecraftstory.txt com um pouco de texto. O programa Spark conta o número de palavras no texto.
- Criar uma subpasta chamada inputfiles na pasta spark.
- Carregue o arquivo minecraftstory.txt na subpasta inputfiles.
Criar um data factory
Siga as etapas do artigo Guia de Início Rápido: Criar um data factory usando o portal do Azure para criar um data factory, caso ainda não tenha um para usar.
Criar serviços vinculados
Você cria dois serviços vinculados nesta seção:
- Um serviço vinculado do Armazenamento do Azure que vincula uma conta de Armazenamento do Azure ao data factory. Esse armazenamento é usado pelo cluster HDInsight sob demanda. Ele também contém o script Spark a ser executado.
- Um serviço vinculado do HDInsight sob demanda. O Azure Data Factory cria automaticamente um cluster HDInsight e executa o programa Spark. Em seguida, ele exclui o cluster HDInsight após o cluster ficar ocioso por um tempo pré-configurado.
Criar um serviço vinculado do Armazenamento do Azure
Na home page, alterne para a guia Gerenciar no painel esquerdo.
Selecione Conexões na parte inferior da janela e, depois, selecione + Novo.
Na janela Novo Serviço Vinculado, selecione Armazenamento de Dados>Armazenamento de Blobs do Azure e selecione Continuar.
Em Nome da conta de Armazenamento, selecione o nome na lista e selecione Salvar.
Criar um serviço vinculado do HDInsight sob demanda
Selecione o botão + Novo novamente para criar outro serviço vinculado.
Na janela Novo Serviço Vinculado, selecione Computação>Azure HDInsight e selecione Continuar.
Na janela Novo Serviço Vinculado, execute as seguintes etapas:
a. Para Name, insira AzureHDInsightLinkedService.
b. Para Tipo, confirme se HDInsight sob demanda está selecionado.
c. Para Serviço Vinculado do Armazenamento do Microsoft Azure, selecione AzureBlobStorage1. Você criou esse serviço vinculado anteriormente. Se você usou um nome diferente, especifique o nome correto aqui.
d. Para o campo Tipo de cluster, selecione spark.
e. Para Id da entidade de serviço, insira a ID da entidade de serviço que tem permissão para criar um cluster do HDInsight.
Essa entidade de serviço precisa ser um membro da função de Colaborador de assinatura ou o grupo de recursos em que o cluster é criado. Para obter mais informações, consulte Criar uma entidade de serviço e um aplicativo do Microsoft Entra. A ID da entidade de serviço é equivalente à ID do aplicativo e uma Chave de entidade de serviço é equivalente ao valor de um Segredo do cliente.
f. Para Chave da entidade de serviço, insira a chave.
g. Para Grupo de recursos, selecione o mesmo grupo de recursos que você usou ao criar o data factory. O cluster Spark é criado nesse grupo de recursos.
h. Expandir o Tipo de sistema operacional.
i. Insira um nome para o Nome de usuário do cluster.
j. Insira a Senha do cluster para o usuário.
k. Selecione Concluir.
Observação
O Azure HDInsight limita o número total de núcleos que você pode usar em cada região do Azure a qual ele dá suporte. Para o serviço vinculado do HDInsight sob demanda, o cluster HDInsight é criado na mesma localização do Armazenamento do Azure usada como o armazenamento primário. Verifique se você tem cotas de núcleo suficientes para que o cluster seja criado com êxito. Para obter mais informações, consulte Configurar clusters no HDInsight com Hadoop, Spark, Kafka e mais.
Criar um pipeline
Selecione o botão + (adição) e escolha Pipeline no menu.
Na caixa de ferramentas Atividades, expanda HDInsight. Arraste a atividade Spark da caixa de ferramentas Atividades para a superfície do designer do pipeline.
Na parte inferior da janela de propriedades da atividade Spark, execute as seguintes etapas:
a. Troque para a guia HDI Cluster.
b. Selecione AzureHDInsightLinkedService (criado no procedimento anterior).
Alterne para a guia Script/Jar e execute estas etapas:
a. Para Serviço Vinculado do Trabalho, selecione AzureBlobStorage1.
b. Selecione Procurar Armazenamento.
c. Procure na pasta adftutorial/spark/script, selecione WordCount_Spark.py e selecione Concluir.
Para validar o pipeline, selecione o botão Validar na barra de ferramentas. Selecione a >> (seta para a direita) para fechar a janela de validação.
Selecione Publicar Tudo. A IU de Data Factory publica entidades (serviços vinculados e pipeline) para o serviço Azure Data Factory.
Disparar uma execução de pipeline
Selecione Adicionar gatilho na barra de ferramentas e selecione Disparar Agora.
Monitorar a execução de pipeline
Alterne para a guia Monitorar. Verifique se o pipeline está sendo executado. Leva aproximadamente 20 minutos para criar um cluster Spark.
Selecione Atualizar periodicamente para verificar o status da execução do pipeline.
Para ver as execuções de atividade associadas com a execução de pipeline, selecione Exibir as Execuções de Atividade na coluna Ações.
Você pode alternar novamente para o modo de execução do pipeline selecionando o link Todas as execuções de pipelines na parte superior.
Verificar a saída
Verifique se o arquivo de saída é criado na pasta spark/outputfiles/wordcount no contêiner do adftutorial.
O arquivo deve ter cada palavra do texto do arquivo de entrada e o número de vezes que a palavra apareceu no arquivo. Por exemplo:
(u'This', 1)
(u'a', 1)
(u'is', 1)
(u'test', 1)
(u'file', 1)
Conteúdo relacionado
Neste exemplo, o pipeline transforma dados usando a atividade Spark e um serviço vinculado do HDInsight sob demanda. Você aprendeu a:
- Criar um data factory.
- Crie um pipeline que usa uma atividade Spark.
- Dispare uma execução de pipeline.
- Monitorar a execução de pipeline.
Avance para o próximo tutorial para aprender como transformar dados executando o script Hive em um cluster do Azure HDInsight que está em uma rede virtual: