Este é um projeto de pipeline de ETL (Extract, Transform, Load) usando Apache Spark e Java. O objetivo do projeto é realizar a limpeza de dados de um arquivo CSV e fazer transformações para um formato adequado para análise.
O projeto está estruturado da seguinte maneira:
.
├── pom.xml
├── readme.md
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── magazord
│ │ ├── DataCleaningExample.java
│ │ └── Main.java
│ └── resources
│ └── clientes_transacoes.csv
└── test
└── java
9 directories, 5 files
src/main/java/com/magazord/
: Contém os arquivos Java responsáveis pela lógica de ETL.src/main/resources
: Contém os arquivos que serão processados pela ETL.target/
: Diretório gerado pelo Maven contendo os artefatos de build (não versionado).pom.xml
: Arquivo de configuração do Maven, que define as dependências do projeto..gitignore
: Arquivo que garante que arquivos desnecessários não sejam versionados.
Para rodar o projeto, siga os passos abaixo:
Primeiro, clone o repositório para o seu ambiente local:
git clone https://github.com/duxalex/etl-pipeline-java-spark
cd etl-pipeline
Certifique-se de que o Maven está instalado no seu sistema. Caso não tenha o Maven instalado, siga as instruções de instalação aqui.
No Ubuntu, por exemplo, você pode instalar o Maven com o comando:
sudo apt install maven
Execute o seguinte comando para compilar e instalar o projeto:
mvn clean install
Após compilar o projeto, você pode executar a aplicação com o seguinte comando:
java -cp target/etl-pipeline-1.0-SNAPSHOT.jar com.magazord.DataCleaning
Este projeto utiliza um arquivo CSV de exemplo com informações de vendas. O arquivo de entrada clientes_transacoes.csv
tem a seguinte estrutura:
id | nome | idade | cidade | transacao_valor | transacao_data | |
---|---|---|---|---|---|---|
1 | Ana Silva | [email protected] | 28 | São Paulo | 250.50 | 2025-01-01 |
2 | João Souza | [email protected] | 35 | Rio de Janeiro | 150.75 | 2025-01-02 |
3 | Maria Oliveira | [email protected] | 22 | Belo Horizonte | 320.00 | 2025-01-03 |
Se você quiser contribuir para este projeto, fique à vontade para abrir uma issue ou enviar um pull request. Para sugestões ou melhorias, sinta-se à vontade para abrir uma issue.
Projeto desenvolvido por Alex Souza.
- Estrutura do Projeto: Esta seção descreve a organização dos arquivos dentro do repositório.
- Como Rodar o Projeto: Passos necessários para rodar o projeto localmente.
- Exemplo de Dados: Mostra o formato do arquivo CSV que é processado pelo código.
- Contribuição: Instruções básicas para contribuições futuras, como enviar pull requests.