Desafio final desenvolvido para a Residência do Porto Digital na empresa A3Data onde tivemos a oportunidade de trabalhar com construção de DataLake e camadas (Bronze, Silver e Gold) para criação de dashboards e analises.
Buscamos entender a relação das vacinas ministradas e dos cidadões que se vacinaram na região metropólitana do Recife. Buscando padrões que podem favorecer novas campanhas de vacinas ou no enfrentamento de novas empidemias
Visão Geral - Dados abertos Recife
Covid-19 2021
Covid-19 2022
Covid-19 2023
🔵 Java 🔵 Pyspark 🔵 SQL 🔵 DataLake em camadas 🔵 Google Colab
- Atualize a lista de pacotes:
apt-get update
- instale o
Java 8 JDK headless
usandoapt-get install openjdk-8-jdk-headless -qq > /dev/null
; - instale o
PySpark
viapip install -q pyspark
, interface Python para o Apache Spark; - Define o caminho do Java 8
(/usr/lib/jvm/java-8-openjdk-amd64)
na variável de ambienteJAVA_HOME
; - Importa
SparkSession
e funções(functions as f)
da bibliotecapyspark.sql
para manipulação de dados; - Inicializa uma sessão Spark usando
SparkSession.builder.getOrCreate()
, que cria uma nova sessão ou recupera uma existente;
Isso configura o ambiente necessário para processar dados com o Spark.
- Usa o comando
curl
para baixar os arquivos CSV; - Os arquivo são salvos localmente com nomes exclusivos (Ex.: vacinados_21.csv, vacinados_22.csv, vacinados_23.csv);
- O comando
!ls -lh vacinados_*.csv
lista os arquivos CSV começando com"vacinados_"
para verificar a existência e detalhes dos arquivos baixados; - Usa
os.listdir('.')
para listar todos os arquivos e diretórios na pasta atual e imprime a lista de arquivos, para verificar se os arquivos estão presentes; - Organiza a tabela usando o delimitador
;
, define a primeira linha como cabeçalho(header=True)
, e infere automaticamente os tipos de dados das colunas(inferSchema=True)
; - Usa as funções show() e printSchema() para exibir e os dados e verificar o esquema dos DataFrames *Conta valores brancos e nulos
Isso ajuda na obtenção de dados para local e organização dos mesmos
- Utilizando o
(...).write.parquet(...)
- Confirma a criação do parquet com
(os.listdir('.'))
O formato Parquet é eficiente para armazenamento e processamento de grandes volumes de dados.
- Lê os arquivos Parquet armazenados no diretório bronze
- Trata os dados removendo células nulas
- Trata os dados removendo duplicatas
- Aplicações de Joins para análises preliminares
- Realização de analises mais complexas
- Construção de Gráficos
Bia Nader: (https://github.com/bianader)
Carlos Campos: (https://github.com/carloscamposb)
Lucas Teixeira: (https://github.com/Lukgt)
Ruth Xavier:(https://github.com/xavierruth)