Olá! Meu nome é Bruno Raphaell e vou te acompanhar neste curso!
Autodescrição: Sou um homem negro, de cabelos curtos e cacheados na cor preta, e barba e bigode também pretos. Uso um óculos de grau de armação arredondada na cor preta e visto uma camiseta preta com o símbolo de Data Science na cor verde. Ao meu fundo, uma parede na cor azul com um guarda-roupa e uma estante de livros.
Nesta jornada, conheceremos diferentes formatos e tipos de arquivos que são importantes no contexto de big data na plataforma de Databricks. Para isso, usaremos um arquivo referente à pesquisa nacional de saneamento básico, ou PNSB.
Os formatos de arquivo com os quais trabalharemos são JSON, CSV, TXT, AVRO, PARQUET e ORC. Passaremos, ainda, por conceitos e aplicações de técnicas de particionamento, compressão e descompressão, além de comandos referentes à API do PySpark.
Através deste curso, você poderá decidir qual o melhor formato de arquivo de acordo com sua necessidade e aplicação. Para que você possa melhor aproveitá-lo, é importante ter algum conhecimento prévio sobre a plataforma Databricks.
Vamos nessa? Te vejo nos próximos vídeos!
Durante nossa vida, seja ela pessoal ou profissional, nos deparamos com diversos arquivos, como textos, imagens, documentos, entre muitos outros.
Para cada tipo de arquivo, existem diversos formatos. Uma imagem, por exemplo, pode ter formato JPEG, TIFF, PNG etc, sendo que o profissional que trabalha com imagem precisa definir o melhor formato para seu projeto.
Na área de dados seguimos o mesmo princípio, portanto, um profissional que está trabalhando em um projeto de engenharia de dados, por exemplo, precisa analisar algumas das seguintes características:
Por isso é necessário termos entendimentos sobre as vantagens e desvantagens que cada formato de arquivo oferece, assim podemos adequar à necessidade do nosso projeto.
O formato de arquivo define o tipo de gravação e o tipo de dado que estará presente nele. Dependendo do formato escolhido, diferentes formas de gravação serão feitas e cada uma delas possui pontos positivos e negativos.
Se queremos, por exemplo, que a pessoa para quem enviaremos o arquivo tenha uma fácil leitura, o formato TXT é uma boa opção. Porém, a segurança ficaria comprometida, já que se compartilharmos uma senha, por exemplo, este formato já não é tão adequado.
Em contrapartida, os arquivos binários possuem uma maior segurança, já que para ser lido é necessário uma decodificação prévia, o que significa que não podemos abri-lo em qualquer lugar. Este formato comprime com mais facilidade, ocupa menos espaço, favorece o armazenamento de áudio, vídeo e dados gráficos, e, como já citado, oferece mais segurança.
Com relação aos dados estruturados, podemos ter diversos formatos, sendo os mais comuns CSV, JSON, AVRO, ORC e PARQUET. No que diz respeito ao armazenamento, a principal divisão está entre linhas e colunas, sendo CSV, JSON e AVRO baseado em linhas, e ORC e PARQUET baseado em coluna.
Devido a essa diferença, há vantagens e desvantagens na utilização de cada formato de armazenamento, então precisamos considerar alguns pontos na hora de escolher:
Caso a intenção seja fazer gravação, ou seja, salvar os dados de maneira otimizada, os formatos de arquivo com armazenamento em linhas são mais indicados. Se o objetivo, porém, é fazer consultas e leituras dos arquivos, os formatos baseados em colunas são mais apropriados.
Outra característica que devemos observar ao escolher o formato de arquivo com o qual vamos trabalhar, é relacionado ao seu paralelismo, que é basicamente dividir os dados em diversas partições para, então, o processamento ser realizado de forma paralela. Esse paralelismo permite que executemos o processamento de maneira otimizada.
Arquivos como CSV e JSON possuem grande dificuldade de realizar o processamento, então requerem um maior poder computacional para que seja feita a partição dos dados e o processamento paralelo. Já os arquivos no formato PARQUET possum um particionamento mais otimizado.
Quando se trabalha com sistema de arquivos distribuídos, como é o caso do Spark, e se utiliza arquitetura HDFS, é primordial que os arquivos possam ser particionados, pois assim o processamento paralelo é realizado. Quanto mais fácil seu arquivo puder ser dividido, mais otimizado será o seu processamento dentro da plataforma Databricks, já que utiliza o Spark como ferramenta principal.
Agora que entendemos que existem diferentes formatos de arquivos com diversas características, entenderemos como a plataforma Databricks, baseada na WEB, lida com esses dados!
Agora, veremos como o Databricks trabalha com nossos arquivos!
Nossos arquivos serão armazenados em DBFS, sigla para Databricks File System, um sistema se arquivo distribuído presente no workspace que está disponível no cluster que criaremos em breve.
O databricks permite a interação com outros tipos de armazenamento de objetos como, por exemplo, o S3 da AWS. A grande vantagem é que não será necessário decorar comandos específicos da API de cada nuvem, pois podemos utilizar a escrita de diretórios semelhante ao que usaríamos, por exemplo, no Linux. Com o DB8, que veremos logo mais, será possível trabalhar como se tivéssemos trabalhando diretamente em nosso computador, através de comandos simples.
O arquivos que utilizaremos durante este curso é a Pesquisa Nacional de Saneamento Básico, que contém dados coletados de 5564 municípios do Brasil no ano de 2008. Não vamos nos ater tanto a esses dados, pois não faremos análises exploratórias, construção de modelos de machine learning ou realização de consultas. Nosso objetivo é fazer transformações de um formato para outro, analisando suas características.
Para fazer a importação dos nossos dados, o primeiro passo é criar o cluster.
Com o Databricks aberto na página inicial, vamos em "Compute", na aba lateral esquerda, e em "Create compute". Ao clicar nesta opção, temos acesso a algumas informações sobre o cluster que criaremos, como, por exemplo, que é apenas 1 driver, possui 15GB, 2 cores e 1DBU.
Podemos nomeá-lo como "formato_arquivos" e clicar em "Create Cluster". Feito isso, basta aguardar a criação.
Para se certificar de que nosso cluster foi criado, basta conferirmos o ícone de check em verde ao lado do nome do cluster. Ao passar o mouse por este ícone deve aparecer a mensagem "Cluster running", o que significa que ele está rodando.
Na aba lateral, vamos em Settings > Admin Console e clicamos na aba "Workspace settings". Nela, habilitamos a opção "DBFS File Browser". Ao fazê-lo, surge a mensagem de que o DBFS foi habilitado e que devemos recarregar nossa página para que as mudanças sejam aplicadas.
Após recarregar a página, vamos em "Data", no menu lateral. Note que deve haver duas abas: "Database Tables" e "DBFS". Clicando na segunda, que corresponde à opção que acabamos de habilitar, notamos que há algumas pastas, como "FileStore", que foi criada automaticamente quando criamos o cluster. É nela que ficarão os resultados das análises exploratórias que forem feitas em outros experimentos, como, por exemplo, a geração de gráficos, importação de biblioteca, entre outros.
Agora que temos nosso cluster e nossa pasta "FileStore", vamos criar um notebook e uma subpasta de de FileStore > tables, onde poderemos organizar melhor os arquivos trabalhados durante o curso.
Para criar essa pasta, faremos uso da ferramenta Databricks Utilities que nos permite manipular diretórios diretamente no nosso notebook, então precisamos primeiro criar este notebook.
No menu lateral, vamos em Create > Notebook. O nomeamos como "curso_formatos_arquivos", mantemos a linguagem padrão como Python e o cluster como o "formato_arquivos", criado anteriormente. Feito isso, clicamos em "Create" e aguardamos a criação do notebook.
O notebook será criado e aberto, então agora faremos o seguinte comando para que possamos utilizar o DBUtils (Databricks Utilities):
dbutils.fs.ls("/FileStore/")
Ao o executarmos, será analisado o conteúdo presente em "FileStore".
Note que o retorno não é muito organizado. Então, para que possamos melhor compreender essa visualização, acrescentaremos display()
ao início do comando englobando seu conteúdo entre parênteses. Deve ficar assim:
display(dbutils.fs.ls("/FileStore/"))
Ao executar, o retorno deve ser uma listagem dos diretórios presentes na pasta "FileStore", semelhante ao comando ls
do Linux.
O que queremos, porém, é verificar o que existe na subpasta "tables", onde criaremos uma pasta. Para isso, copiamos o caminho desta pasta que nos foi retornado na listagem e colamos como parâmetro de dbutils.fs.ls()
.
Alterando nosso comando, ele deve ficar assim:
display(dbutils.fs.ls("/FileStore/tables"))
Note que o retorno é uma espécie de erro, informando que está vazia, o que é esperado porque não criamos arquivo algum dentro desta pasta.
Vamos, então, criar uma pasta chamada "arquivos_curso" dentro da pasta "tables". Para isso, usaremos o seguinte comando:
dbutils.fs.mkdirs("/FileStore/tables/arquivos_curso")
Ao executá-lo teclando "Ctrl + Enter" obtemos o retorno "True", o que significa que o comando foi corretamente executado. Para verificar esta ação, vamos em Data > DBFS > FileStore > tables e notamos que "arquivos_curso" já deve aparecer. Nossa pasta foi criada!
Agora, vamos importar nossos dados.
Para isso, precisamos primeiro fazer o download do conjunto de dados no site do governo. Ao acessá-lo, basta ir em "Recursos" e clicar em "Acessar o recurso", correspondente ao formato JSON. Feito isso, seremos direcionados a uma janela com os dados em JSON, onde clicamos com o botão direito do mouse, selecionamos "Salvar como" e optamos por armazená-lo onde nos for mais conveniente.
O salvamos como "PNSB", então quando usarmos esta sigla, estaremos nos referindo a este arquivo.
Agora vamos, de fato, importar nosso arquivo. Portanto, de volta ao nosso notebook, vamos em Data > DBFS > FileStore > tables > arquivos_curso e clicamos em "Upload" no canto superior direito.
Uma janela abrirá. Nela clicamos em "Drop file to upload", selecionamos o arquivo e aguardamos o carregamento. Quando este for finalizado, note que o caminho (/FileStore/tables/arquivos_curso) aparecerá embaixo do arquivo, então é interessante copiá-lo, pois o usaremos em breve. Por fim, basta clicarmos em "Done".
Nosso arquivo já deve aparecer dentro da pasta "arquivos_curso", mas podemos fazer uma verificação através do seguinte comando:
display(dbutils.fs.ls("/FileStore/tables/arquivos_curso"))
Ao executá-lo, o retorno deve mostrar que nosso arquivo PNSB.json
consta dentro da pasta "arquivos_curso".
Conhecemos um pouco de DBFS e de DBUtils, cujos comandos utilizaremos bastante ao longo do curso, além de importar o arquivo que será usado.
Note, porém, que nosso arquivo está em JSON, e ainda não sabemos as vantagens e desvantagens deste formato. Portanto, conheceremos a seguir!
O curso Databricks: trabalhando com diversos formatos e tipos de arquivos possui 141 minutos de vídeos, em um total de 42 atividades. Gostou? Conheça nossos outros cursos de Engenharia de Dados em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.