Giter Site home page Giter Site logo

datalake-spark-project's Introduction

💻Projeto Datalake com Spark

  • Este projeto demonstra a análise de vendas usando PySpark dentro de um contêiner Docker.
  • O objetivo é criar um DataFrame com um volume significativo de dados, realizar operações de agregação e exibir os resultados.
  • O ambiente de execução é isolado e replicável, utilizando Docker.

Grupo (Cascas de Bala)

  1. Dyelle Hemylle Nunes de Almeida
  2. Ingrid Gabrielly Camara Lira
  3. Jarmison Kecio Ferreira da Cunha
  4. Kleber Lucas Lopes Alves
  5. Tállyson Emanoel Roques Izidio
  6. Vitor Eduardo de Carvalho

✅Pré-requisitos

  • Docker instalado na sua máquina.
  • Site oficial para baixar e instalar o Docker.

♟️Estrutura do Projeto

├── app/
│ └── app.py
└── Dockerfile
└── README.md
└── package-lock.json

✅Construir imagem

Para construir a imagem Docker, execute o seguinte comando no diretório raiz do projeto (datalake-spark-project):

docker build -t datalake:latest .

✅Executar

Para executar o contêiner Docker com a imagem construída, use o comando:

docker run datalake

📄Documentação do Projeto

Dependências do Projeto

Este projeto depende das seguintes tecnologias e bibliotecas:

  • Apache Spark: uma estrutura de computação distribuída para processamento de dados em grande escala.
  • PySpark: a API Python para Apache Spark, permitindo a manipulação de grandes conjuntos de dados.
  • Docker: uma plataforma para desenvolver, enviar e executar aplicações em contêineres.

Instalação de Dependências

Certifique-se de que as seguintes dependências estão instaladas na sua máquina:

  1. Docker:

  2. Python (opcional, apenas se você quiser executar os scripts localmente sem Docker):

    • Instale a versão mais recente do Python a partir do site oficial do Python.
    • Instale o PySpark usando o pip:
      pip install pyspark

Scripts e Programas

Esta seção detalha os scripts e programas incluídos neste projeto, explicando sua funcionalidade e estrutura.

app.py:
  • Este script realiza a análise de vendas utilizando PySpark.
  • Ele cria um DataFrame com dados de produtos, quantidade e preço, calcula a receita total e a média de vendas por produto, e exibe os resultados.
  • Inicializa a sessão do Spark para processar dados.
Dockerfile:
  • Configura o ambiente necessário para executar o script app.py em um contêiner Docker.
  • Instala Python e bibliotecas necessárias.
  • Define o diretório de trabalho e copia os arquivos do projeto.
  • O contêiner executa app.py ao iniciar.

Execução Local (Opcional)

Se você preferir executar o script localmente sem usar Docker, você pode seguir estas etapas:

  1. Certifique-se de que o PySpark está instalado (como mencionado anteriormente).
  2. Navegue até o diretório onde o app.py está localizado.
  3. Execute o script usando o comando:
    python app/app.py
    

Exemplo de Saída

Após executar o contêiner ou o script localmente, você verá uma saída semelhante a esta:

Produto Quantidade Preco
Produto1 1 150
Produto2 2 250
Produto3 3 350
... ... ...

Receita Total por Produto:

Produto Receita_Total
Produto9 2755000
Produto8 2380000
Produto5 1375000
... ...

Média de Vendas por Produto:

Produto Media_Vendas
Produto9 27550.0
Produto8 23800.0
Produto5 13750.0
... ...

Como o Projeto Funciona

  1. Inicialização da SparkSession: o script começa criando uma SparkSession, que é a entrada principal para a funcionalidade de Spark.
  2. Criação do DataFrame: gera um DataFrame com 1000 registros, cada um representando vendas de diferentes produtos.
  3. Operações de Agregação: o script calcula a receita total e a média de vendas por produto, utilizando funções de agregação do PySpark.
  4. Exibição dos Resultados: os resultados das operações de agregação são exibidos no console.
  5. Execução em Docker: o projeto é executado dentro de um contêiner Docker para garantir um ambiente consistente e replicável.

Benefícios do Uso de Docker

  1. Isolamento de Ambiente: Docker fornece um ambiente de execução isolado, garantindo que as dependências e configurações sejam consistentes em diferentes máquinas.
  2. Reprodutibilidade: o uso de contêineres garante que o código funcione da mesma maneira em qualquer máquina, eliminando problemas de "funciona na minha máquina".
  3. Facilidade de Distribuição: compartilhar o contêiner Docker com outras pessoas permite que elas executem o projeto sem precisar configurar o ambiente manualmente.

Benefícios de construir um datalake utilizando Apache Spark

  1. Processamento de Alta Velocidade: Spark executa operações em memória sempre que possível, acelerando significativamente o processamento em comparação com frameworks baseados em disco como o Hadoop MapReduce.
  2. Escalabilidade: Spark é projetado para escalar horizontalmente, facilitando a adição de nós ao cluster para lidar com grandes volumes de dados e aumentar a capacidade de processamento. Funciona em uma variedade de ambientes (incluindo on-premises, AWS, Google Cloud, Azure, etc.).
  3. Versatilidade: Suporta múltiplas linguagens (Python, Java, Scala, R). Tem bibliotecas integradas para SQL, machine learning, processamento de grafos e streaming.
  4. Integração com Diversas Fontes de Dados: Conectores para HDFS, S3, Google Cloud Storage, bancos de dados SQL e NoSQL, Kafka, entre outros.
  5. Facilidade de Uso e Desenvolvimento Rápido: Oferece APIs de alto nível fáceis de usar e entender, promovendo desenvolvimento rápido e eficiente. Conta com uma shell interativa para Scala e Python, permitindo desenvolvimento e experimentação iterativa com dados.
  6. Robustez e Tolerância a Falhas: Lida eficientemente com falhas de nós, reprocessando operações a partir de dados já processados (RDDs). Tem uma comunidade ativa de desenvolvedores e amplo suporte, incluindo documentação detalhada, tutoriais e fóruns.
  7. Custo-Efetividade: Projeto de código aberto sem custos de licenciamento, podendo ser executado em hardware comum ou na nuvem, proporcionando flexibilidade de custos. Uso eficiente de recursos como processamento em memória e escalabilidade horizontal reduz custos operacionais.
  8. Capacidade de Processar Dados Estruturados e Não Estruturados: Processa uma ampla variedade de tipos de dados, incluindo estruturados (tabelas SQL), semiestruturados (JSON, XML) e não estruturados (logs, mídia).

datalake-spark-project's People

Contributors

ingrid-gabrielly avatar lssno avatar dyellena avatar tallysonizidio1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.