Ciência e Dados
Menu
  • Home
  • Sobre
  • Contato
Menu
Apache Spark e Data Science

Apache Spark e Data Science

Posted on 21 de outubro de 201527 de dezembro de 2017 by David Matos

A análise de dados tem crescido a cada dia e várias ferramentas tem surgido para auxiliar aqueles que trabalham com dados. Uma destas ferramentas é o Apache Spark.

Spark é um projeto open source, mantido por uma comunidade de desenvolvedores que foi criado em 2009 na Universidade da Califórnia, Berkeley. Os desenvolvedores estavam trabalhando com Hadoop MapReduce e perceberam ineficiências na execução de computação interativa. Por esta razão, Spark foi concebido com o principal objetivo de ser veloz, tanto no processamento de queries quanto de algoritmos, além de processamento em memória e eficiente recuperação de falha.

Apache Spark é uma plataforma de computação em cluster criada para ser rápida e de propósito geral e tem crescido muito em popularidade. O Apache Spark oferece basicamente 3 principais benefícios:

1- Facilidade de uso – é possível desenvolver API’s de alto nível em Java, Scala, Python e R, que permitem focar apenas no conteúdo a ser computado, sem se preocupar com configurações de baixo nível e extremamente técnicas.

2- Velocidade – Spark é veloz, permitindo uso interativo e processamento rápido de algoritmos complexos. Velocidade é uma característica especialmente importante no processamento de grandes conjuntos de dados e pode fazer a diferença entre analisar os dados de forma interativa ou ficar aguardando vários minutos pelo fim de cada processamento. Com Spark, o processamento é feito em memória.

3- Uso geral – Spark permite a utilização de diferentes tipos de computação, como processamento de linguagem SQL (SQL Spark), processamento de texto, Machine Learning (MLlib) e processamento gráfico (GraphX). Estas características fazem do Spark uma excelente opção para projetos de Big Data.

O projeto Spark contém diversos componentes integrados. Basicamente, Spark é um engine de computação, responsável por agendar, distribuir e monitorar aplicações de diversas tarefas de processamento através de diferentes servidores em cluster.

Spark Framework

Spark Framework

Spark Core

Contém as funcionalidades básicas do Spark, incluindo componentes para agendamento de tarefas, gestão de memória, recuperação de falha e sistemas de armazenamento. O Spark Core também possui as API’s que definem os Resilient Distributed Datasets (RDD’s), que são a programação principal do Spark. As RDD’s são distribuídas pelos nodes e podem ser manipuladas em paralelo.

Spark SQL

Spark SQL é um pacote para tarefas com dados estruturados. Ele permite realizar queries nos dados através de linguagem SQL e HQL (Apache Hive Query Language – a variação do SQL desenvolvida pela Apache), além de suportar diversas fontes de dados como Hive tables, Parquet e JSON. Spark SQL permite que desenvolvedores utilizem linguagem SQL em conjunto com scripts de manipulação de dados feitas em Python, R, Java e Scala (é nesta integração que são usados os RDD’s presentes no Spark Core). Esta integração entre SQL e linguagens de manipulação de dados, fazem do Spark SQL uma ferramenta de Data Warehouse sem igual no mercado.

Spark Streaming

Esse é um componente do framework Spark para processamento de streams de dados em tempo real. Exemplos de streams de dados em tempo real incluem arquivos de logs gerados em servidores web ou filas de mensagens contendo atualizações de web services. Spark Streaming provê uma API para manipulação de dados através das RDD’s, permitindo que se desenvolva projetos de manipulação de dados armazenados em memória, disco ou sendo coletado em tempo real.

MLlib

A biblioteca MLlib é uma funcionalidade para Machine Learning. A MLlib possui diversos tipos de algoritmos de Machine Learning, incluindo classificação, regressão, clustering e filtros colaborativos, assim como permite avaliação de modelos e importação de dados. Tudo isso foi criado para trabalhar muito bem através de cluster de servidores.

GraphX

O GraphX é um biblioteca para manipulação de gráficos e computação em paralelo. Ele também utiliza os RDD’s e possui operadores para manipulação gráfica (subgraph e mapVertices) e bibliotecas de algoritmos gráficos (PageRank e triangle counting).

Gerenciamento do Cluster

Spark foi desenhado para operar em cluster através de milhares de computadores. Para isso, o Spark possui gerenciadores de cluster, incluindo Hadoop YARN, Apache Mesos e o Standalone Scheduler.

E afinal, como Spark é usado em Data Science?

Spark é um framework de propósito geral para computação em cluster e pode ser usado em diversas aplicações. Mas atualmente tem sido bastante utilizado em projetos de Data Science.

Cientistas de Dados normalmente possuem conhecimento de linguagem SQL, estatística, modelagem preditiva, Machine Learning e programação em Python, R ou Matlab. Os Cientistas de Dados usam estes conhecimentos para analisar dados e extrair insights, respondendo questões relacionadas a áreas de negócio. Spark suporta diferentes tarefas de Data Science. Ele permite análise de dados interativa com Python ou Scala, processamento SQL, análise de algoritmos de Machine Learning com o MLlib, além de chamadas externas a scripts desenvolvidos em R ou Matlab. Spark permite que os Cientistas de Dados consigam tratar grandes volumes de dados, que provavelmente não seria possível usando R ou Python (pandas).

O resultado de um projeto de Data Science, pode ser a criação de um sistema de análise de dados em tempo real, que pode se tornar o componente de uma aplicação de negócio. Por exemplo: a investigação inicial de dados, pode levar a criação de um sistema de recomendação em tempo real (já navegou por sites de compras e percebeu como as recomendações vão mudando de acordo com os cliques nas telas?). Este componente precisa ser executado em um ambiente tolerante a falha, de alto desempenho, rodando em cluster e com processamento em tempo real. Ou seja, o Spark pode ser usado em todas as fases de um projeto de Data Science, desde sua concepção, até sua execução em ambiente de produção.

David Matos

Relacionado

2 thoughts on “Apache Spark e Data Science”

  1. Pingback: Bibliotecas de Data Science em Python, R e Scala – Biblioteconomia Uni
  2. Pingback: Kubernetes: Pods, Nodes, Containers e Clusters — Ciência e Dados

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Buscar

Tags Mais Comuns nos Posts

Agentes de IA Analytics Análise de Negócios Apache Spark AWS Big Data Blockchain Business Intelligence ChatGPT Cientista de Dados Cientistas de Dados Ciência de Dados Cloud Computing Data Lake Data Mesh Data Science Data Scientist Data Warehouse Deep Learning Deploy Engenharia de Dados Estatística GPU GraphRAG Hadoop IA Generativa Inteligência Artificial Internet of Things Linguagem Python Linguagem R LLM LLMs Machine Learning MCP (Model Context Protocol) Metadados Normalização NVIDIA Oracle Pipeline de Dados Predictive Analytics Probabilidade PySpark Python RAG Storytelling

Histórico de Posts

  • maio 2025 (6)
  • abril 2025 (2)
  • março 2025 (4)
  • fevereiro 2025 (8)
  • janeiro 2025 (5)
  • dezembro 2024 (4)
  • novembro 2024 (1)
  • outubro 2024 (1)
  • setembro 2024 (1)
  • agosto 2024 (1)
  • julho 2024 (3)
  • junho 2024 (1)
  • maio 2024 (1)
  • abril 2024 (2)
  • março 2024 (1)
  • fevereiro 2024 (1)
  • janeiro 2024 (1)
  • dezembro 2023 (1)
  • outubro 2023 (2)
  • setembro 2023 (1)
  • agosto 2023 (4)
  • julho 2023 (2)
  • junho 2023 (4)
  • maio 2023 (2)
  • abril 2023 (2)
  • março 2023 (3)
  • fevereiro 2023 (3)
  • janeiro 2023 (3)
  • dezembro 2022 (7)
  • novembro 2022 (6)
  • outubro 2022 (2)
  • setembro 2022 (3)
  • agosto 2022 (2)
  • julho 2022 (2)
  • junho 2022 (3)
  • maio 2022 (1)
  • abril 2022 (3)
  • março 2022 (1)
  • fevereiro 2022 (3)
  • janeiro 2022 (2)
  • dezembro 2021 (1)
  • novembro 2021 (5)
  • outubro 2021 (2)
  • setembro 2021 (3)
  • agosto 2021 (1)
  • junho 2021 (1)
  • fevereiro 2021 (2)
  • janeiro 2021 (1)
  • dezembro 2020 (1)
  • novembro 2020 (1)
  • outubro 2020 (2)
  • agosto 2020 (1)
  • abril 2020 (1)
  • março 2020 (1)
  • fevereiro 2020 (2)
  • agosto 2019 (1)
  • abril 2019 (1)
  • setembro 2018 (2)
  • julho 2018 (1)
  • junho 2018 (3)
  • abril 2018 (1)
  • março 2018 (1)
  • fevereiro 2018 (2)
  • janeiro 2018 (1)
  • dezembro 2017 (1)
  • novembro 2017 (1)
  • outubro 2017 (1)
  • setembro 2017 (1)
  • julho 2017 (1)
  • junho 2017 (1)
  • maio 2017 (2)
  • abril 2017 (1)
  • janeiro 2017 (1)
  • novembro 2016 (1)
  • outubro 2016 (1)
  • setembro 2016 (1)
  • julho 2016 (1)
  • junho 2016 (1)
  • maio 2016 (1)
  • abril 2016 (1)
  • fevereiro 2016 (1)
  • janeiro 2016 (3)
  • dezembro 2015 (4)
  • novembro 2015 (6)
  • outubro 2015 (9)
  • setembro 2015 (9)
  • agosto 2015 (9)
©2025 Ciência e Dados
 

Carregando comentários...