Acessando o Armazenamento de Blob do Azure a partir dos Databricks do Azure

Acessando o Armazenamento de Blob do Azure a partir dos Databricks do Azure

Uploading a block blob in Blob Storage container 3/7.
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Introduzimos os Databricks do Azure, como ele é criado e alguns de seus componentes importantes no meu artigo anterior aqui. Veremos como podemos trabalhar com o Armazenamento de Blob do Azure nos Azure Databricks neste artigo.

O Armazenamento de Blob do Azure é um serviço de armazenamento no Azure que permite aos usuários armazenar grandes quantidades de dados não estruturados, como vídeos, áudios, imagens, texto, dados de backup etc. Este serviço em nuvem é uma abordagem econômica e escalável quando comparado ao local opções de armazenamento. Existem quatro tipos de armazenamento no Azure, incluindo armazenamento em Blob (objeto grande binário); você pode aprender sobre eles aqui: Diferentes tipos de armazenamento do Azure (arquivo, blob, fila e tabela).

Os Databricks do Azure são uma implementação do Apache Spark no Microsoft Azure. É uma câmara poderosa que lida com cargas de trabalho de big data sem esforço e ajuda na disputa e na exploração de dados. Permite executar trabalhos Spark em larga escala a partir de qualquer aplicativo Python, R, SQL e Scala. O Spark é escrito no Scala (um idioma de alto nível) e definitivamente existem alguns benefícios de desempenho se os comandos forem executados no Scala nos Azure Databricks.

Pré-requisitos

Para seguir este artigo, você precisa dos seguintes requisitos:

  1. Assinatura do Azure – cada recurso é marcado para uma assinatura no Azure. Você pode criar um para si mesmo aqui

  2. Serviço de Databricks do Azure – Você pode consultar este site para saber como criar um serviço de Databricks no Azure

  3. Armazenamento de Blob do Azure – Para isso, primeiro é necessário criar uma conta de Armazenamento no Azure. Clique aqui se você é novo no serviço de Armazenamento do Azure. Posteriormente, solicitaremos um arquivo .csv neste Armazenamento de Blob que acessaremos dos Databricks do Azure

Depois que a conta de armazenamento for criada usando o portal do Azure, enviaremos rapidamente um blob de bloco (.csv). Nota: O Armazenamento de Blobs do Azure oferece suporte a três tipos de blobs: bloco, página e anexo. Só podemos montar o blob de bloco no DBFS (Databricks File System), portanto, por esse motivo, trabalharemos em um blob de bloco.

  1. Navegue para sua conta de armazenamento no portal do Azure e clique em Containers

    Carregar um blob de bloco no contêiner de Armazenamento de Blob do Azure 1/7.

  2. Clique em + Container criar um novo contêiner

    Fazendo upload de um blob de bloco no contêiner de armazenamento de blob 2/7.

  3. Digite um nome para o contêiner, estou selecionando o nível de acesso padrão como Privado e, finalmente, pressione o Crio botão

    Fazendo upload de um blob de bloco no contêiner Blob Storage 3/7.

  4. O contêiner ‘azsqlshackcontainer’ foi criado com sucesso na conta de armazenamento

    Fazendo upload de um blob de bloco no contêiner Blob Storage 4/7.

  5. Clique no Envio para carregar um blob

    Fazendo upload de um blob de bloco no contêiner de armazenamento de blob 5/7.

  6. Isso abrirá o painel Upload, procure seu arquivo e clique no Envio botão. Você pode usar qualquer arquivo .csv. Caso queira se referir àquele que estamos usando nesta demonstração, faça o download aqui

    Fazendo upload de um blob de bloco no contêiner de armazenamento de blob 6/7.

  7. O blob de bloco “1000 Sales Records.csv” foi carregado com sucesso no contêiner

    Fazendo upload de um blob de bloco no contêiner Blob Storage 7/7.

Nossa estrutura final da conta de Armazenamento do Azure se parece com: Conta de Armazenamento do Azure (azsqlshackstorage) >> Contêiner (azsqlshackcontainer) >> Blob de Blocos (arquivo .csv).

Vamos continuar de onde paramos em nosso último artigo. Para o cluster azdatabricks, criado neste artigo, crie um bloco de anotações chamado accessingblobstorage e selecione Scala idioma, como mostrado abaixo. Trabalharemos neste bloco de dados para acessar o Armazenamento de Blob do Azure neste artigo.

Como criar um bloco de notas Scala nos Azure Databricks?

No portal Databricks, clique na área de trabalho na guia vertical esquerda do menu e selecione Criar >> Bloco de anotações. No Criar caderno Na caixa de diálogo, forneça um nome para o seu Notebook, escolha Scala como o idioma no Língua suspenso e todos os clusters em execução serão exibidos no menu suspenso Cluster. Como temos apenas um, ele será preenchido automaticamente.

Criar um bloco de notas Scala nos Azure Databricks

O bloco de notas Scala mostrado abaixo é criado com sucesso no portal de dados.

Bloco de notas Scala nos Azure Databricks

Resumo do esboço

Como nossa configuração básica inclui o Armazenamento de Blob do Azure (com um arquivo .csv) e o Serviço de Databricks do Azure (com um bloco de anotações Scala), vamos falar sobre a estrutura deste artigo. Vamos demonstrar o seguinte neste artigo:

  1. Primeiro, montaremos o Armazenamento de Blob nos Azure Databricks usando a API do Apache Spark Scala. Em palavras simples, leremos um arquivo CSV do Blob Storage nos Databricks

  2. Faremos uma rápida transformação nos dados e moveremos esses dados processados ​​para uma exibição SQL temporária nos Azure Databricks. Também veremos como podemos usar vários idiomas no mesmo caderno de dados

  3. Por fim, gravaremos os dados transformados no contêiner de armazenamento de blob do Azure usando a API Scala

Etapa 1: Montar um contêiner de Armazenamento de Blob do Azure

Para começar, você precisará saber o nome do seu contêiner, conta de armazenamento e sas (assinatura de acesso compartilhado). Este sas é concedido pela Microsoft para acessar os recursos de Armazenamento do Azure. Para gerar um sas, navegue até sua conta de armazenamento e clique em Assinatura de acesso compartilhado na folha Configurações. Verifique os valores apropriados; você também pode gerar o sas para um período específico. Por fim, clique em Gere SAS e cadeia de conexão para gerar e copiar o token SAS.

Gere SAS e string connectiong para o contêiner de Armazenamento de Blob.

Digite o código abaixo no bloco de notas Scala e pressione “Ctrl + Enter” para executá-lo.

Montar um contêiner de Armazenamento de Blob do Azure nos Databricks 1/2

Não se esqueça de alterar os valores para o containerName, storageAccountName e sas de acordo.

Depois de executado, clique no sinal + (marcado acima em um círculo vermelho) para continuar com a sua codificação.
  
  Execute o seguinte snippet de código que usa o utilitário Databricks para montar o Armazenamento do Azure.

Alguns pontos a serem observados aqui:

  1. O Databricks Utilities (dbutils) oferece utilitários com o FileSystems. Esta montagem configura a conexão entre os Azure Databricks e o Azure Blob Storage

  2. meu arquivo() é um caminho DBFS e representa qual contêiner / pasta será montado no DBFS, conforme especificado em “origem”. Você pode digitar seu

  3. config é o que é esse “fs.azure.sas”...blob.core.windows.net ”no nosso caso

Montando o contêiner Blob Storage no Databricks 2/2

Etapa 2: ler os dados

Execute o seguinte comando para ler o arquivo .csv no seu contêiner de armazenamento de blob.

  • Usaremos o comando spark.read para ler o arquivo e armazená-lo em um dataframe, mydf

  • Com a opção header = true, dizemos para usar a primeira linha do arquivo como cabeçalho

  • A opção padrão para inferSchema é false, portanto, definindo-o como true, o Spark inferirá o esquema de cada coluna automaticamente

  • / mnt / myfile permitirá que você leia a partir da montagem, você acessará arquivos em seu contêiner como se fossem arquivos locais

  • E, finalmente, use a função de exibição para exibir os registros do quadro de dados

  • Altere os valores no comando abaixo para o nome da montagem e o formato do arquivo, que é myfile e .csv, respectivamente, no nosso caso

Lendo os dados do Armazenamento de Blob nos Azure Databricks.

Etapa 3: transformar os dados

Para selecionar algumas colunas no conjunto de resultados, execute o comando abaixo.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Transformando os dados nos Azure Databricks usando a API Scala.

Vamos executar o código abaixo para renomear a coluna de SalesChannel para SalesPlatform.

Renomear colunas nos Azure Databricks usando Scala.

Os notebooks da Databricks oferecem um ótimo ambiente de colaboração para seus usuários. Clique no ícone de comentário acima (circulado em vermelho), adicione seu comentário e clique em Comente.

Comentando no bloco de notas Scala nos Azure Databricks.

Crie uma exibição ou tabela para consultar esses dados. Você pode fornecer qualquer nome de exibição temporário. Isso é tratado como uma tabela local e estará disponível apenas para este Notebook.

Criando uma visualização temporária no bloco de notas Scala no Databricks.

Agora vem a parte interessante dos cadernos, você pode substituir o idioma padrão, Scala, especificando o comando mágico do idioma,%. Portanto, usando% sql na parte superior, você pode alternar o idioma do Scala para o Spark SQL. O código abaixo recupera todos os resultados da exibição temporária, SalesData.

Vamos realizar uma agregação simples para calcular o lucro total de cada região para os canais online e offline.

Consultando dados usando o Spark SQL.

Etapa 4: gravar dados processados ​​de um bloco de dados do Azure Databricks no contêiner de Armazenamento de Blob

Vamos encapsular esta instrução SELECT no Spark SQL para salvar os resultados agregados em um quadro de dados.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 1/6

Abaixo está o snippet de código para gravar dados .csv transformados e agregados em um contêiner de Armazenamento de Blob do Azure usando a API Scala. Se, por algum motivo, você precisar reiniciar / pausar seu cluster, execute o conjunto de comandos cmd 1 mencionado na parte superior deste artigo.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 2/6

O código abaixo salvará os resultados armazenados em aggdata na pasta “SalesProfitData” no Blob Storage.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 3/6

Vá para o Armazenamento de Blob do Azure e você encontrará a pasta SalesProfitData criada. Também existe um arquivo de metadados.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 4/6

Clique nesta pasta recém-criada. Você verá os seguintes arquivos:

  • _started_… -> Indica quando o processo foi iniciado

  • _committed_… -> Mostra quantos arquivos foram criados

  • _SUCCESS -> Informa o status do processamento

Além disso, você encontrará vários arquivos .csv divididos. O mecanismo Spark divide os dados em partições para um processamento de dados rápido e eficaz. Clique em um dos arquivos e você pode editá-lo, como mostrado abaixo.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 5/6

A captura de tela abaixo mostra uma amostra do mesmo arquivo baixado e aberto como um arquivo .csv.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 6/6

  • Nota: Os Databricks do Azure com a estrutura rápida de computação em cluster do Apache Spark foi criada para funcionar com conjuntos de dados extremamente grandes e garante desempenho aprimorado, no entanto, para uma demonstração, usamos um .csv com apenas 1000 registros. Em cenários práticos, os Databricks do Azure processam petabytes de dados em alguns segundos.

Conclusão

Nesta postagem, aprendemos a acessar o Blob Storage nos Azure Databricks e também demonstramos como gravar dados organizados novamente em um contêiner do Azure Blob Storage usando os Azure Databricks. Ao longo do caminho, também fizemos algumas codificações práticas no notebook Scala no cluster Spark.

Gauri Mahajan
Últimas mensagens de Gauri Mahajan (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Semana de treinamento gratuito: como eu uso o kit primeiro respondedor - sp_BlitzCache