Um aplicativo Java de análise de dados com Apache Spark que compete diretamente com soluções em Python.
- 📊 Carregamento intuitivo de dados - Suporte para CSV com diversas opções de configuração
- 🔍 Visualização interativa - Exibição de schemas, amostras e estatísticas descritivas
- 🔄 Transformações poderosas - Seleção de colunas, criação de novas colunas, renomeação e ordenação
- 🔎 Filtros avançados - Aplicação de condições para filtrar dados com precisão
- 📈 Agregações flexíveis - Funções como média, soma, mínimo, máximo e contagem
- ⚙️ Tratamento de dados - Remoção eficiente de duplicatas e valores nulos
- 💾 Múltiplos formatos de exportação - Salvamento em CSV, Parquet e JSON
- Java 8 ou 11 (recomendado)
- Java 17+ (requer configurações adicionais)
- Apache Maven
- Memória suficiente para processar seus conjuntos de dados
Java 8 ou 11 funcionam diretamente sem configurações adicionais.
Para usar com Java 17 ou superior, é necessário adicionar as seguintes opções JVM:
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
- Clone o repositório:
git clone https://github.com/bulletdev/java-spark-data-analyzer.git
cd java-spark-data-analyzer
- Compile o projeto:
mvn clean package
# Para Java 8/11
mvn exec:java -Dexec.mainClass="com.dataanalyzer.DataAnalyzer"
# Para Java 17+
mvn exec:java -Dexec.mainClass="com.dataanalyzer.DataAnalyzer" -Dexec.args="" \
-Dexec.cleanupDaemonThreads=false \
-Dexec.jvmArgs="--add-opens=java.base/java.nio=ALL-UNNAMED \
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED \
--add-opens=java.base/java.util=ALL-UNNAMED \
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED \
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
# Para Java 8/11
java -jar target/java-spark-data-analyzer-1.0-SNAPSHOT-jar-with-dependencies.jar
# Para Java 17+
java --add-opens=java.base/java.nio=ALL-UNNAMED \
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED \
--add-opens=java.base/java.util=ALL-UNNAMED \
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED \
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED \
-jar target/java-spark-data-analyzer-1.0-SNAPSHOT-jar-with-dependencies.jar
O Spark usa algumas funcionalidades do Hadoop que podem gerar avisos no Windows. Se encontrar avisos relacionados ao winutils.exe
ou HADOOP_HOME
, você pode:
- Ignorá-los (não afetam a funcionalidade básica do aplicativo)
- Configurar o ambiente Hadoop para Windows:
- Baixe o winutils.exe
- Crie uma pasta
C:\hadoop\bin
e coloque o arquivo lá - Configure a variável de ambiente
HADOOP_HOME=C:\hadoop
- Adicione
%HADOOP_HOME%\bin
ao PATH
Este aviso pode aparecer ao usar Java 11. É normal e não afeta o funcionamento do aplicativo.
O projeto inclui um arquivo de exemplo dados_vendas.csv
com dados fictícios de vendas de produtos eletrônicos para testar as funcionalidades do aplicativo. Este arquivo contém os seguintes campos:
Campo | Descrição |
---|---|
ID | Identificador único da venda |
Data | Data da venda (formato YYYY-MM-DD) |
Produto | Nome do produto vendido |
Categoria | Categoria do produto |
Preco | Preço unitário do produto |
Quantidade | Quantidade vendida |
ClienteID | Identificador do cliente |
Regiao | Região geográfica da venda |
Vendedor | Nome do vendedor |
Desconto | Percentual de desconto aplicado (decimal) |
Ao iniciar o aplicativo, você verá um menu interativo:
-
Carregue os dados usando a opção 1
- Digite o caminho para o CSV ou use "example" para o arquivo de exemplo
- Confirme se o arquivo tem cabeçalho (s/n)
- Especifique o delimitador (geralmente vírgula)
-
Explore os dados:
- Opção 2: Ver a estrutura (schema) dos dados
- Opção 3: Ver uma amostra dos dados
- Opção 4: Ver estatísticas descritivas
-
Analise e transforme os dados:
- Opção 5: Filtrar registros
- Opção 6: Agregar dados (ex: soma de vendas por região)
- Opção 7: Transformar dados (criar colunas, renomear, etc.)
-
Salve os resultados usando a opção 8
Contribuições são bem-vindas! Se você encontrar bugs ou tiver sugestões de melhorias, abra uma issue ou envie um pull request.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Por que Java para análise de dados? Desempenho superior, tipagem estática, multithreading robusto e integração perfeita com sistemas empresariais.
Java Spark Data Analyzer - A resposta Java para a análise de dados em Python.