Spark
O Apache Spark é um motor de processamento distribuído para Big Data, conhecido por ser muito mais rápido que o MapReduce do Hadoop. Seu segredo é processar dados em memória (RAM) sempre que possível, em vez de ler e gravar em disco a cada etapa.
Por que é mais rápido
Seção intitulada “Por que é mais rápido”O MapReduce grava resultados intermediários em disco entre cada etapa. O Spark mantém os dados em memória e só recorre ao disco quando necessário. Em tarefas iterativas (como treinar modelos de Machine Learning), isso o torna muito mais veloz.
Estruturas de dados
Seção intitulada “Estruturas de dados”- RDD (Resilient Distributed Dataset): a estrutura original — uma coleção distribuída e tolerante a falhas. É a base de tudo.
- DataFrame: dados organizados em colunas nomeadas (como uma tabela). Mais fácil de usar e otimizado.
- Dataset: combina as vantagens das duas, com verificação de tipos.
Componentes
Seção intitulada “Componentes”Spark é uma plataforma com vários módulos integrados:
| Componente | Para quê |
|---|---|
| Spark SQL | Consultas em dados usando SQL |
| Spark Streaming | Processamento de dados em tempo real |
| MLlib | Biblioteca de Machine Learning |
| GraphX | Processamento de grafos |
Spark x Hadoop
Seção intitulada “Spark x Hadoop”Não são rivais diretos — muitas vezes se complementam.
| Hadoop (MapReduce) | Spark | |
|---|---|---|
| Processamento | Em disco | Em memória (mais rápido) |
| Velocidade | Menor | Muito maior em tarefas iterativas |
| Tempo real | Não (só batch) | Sim (Spark Streaming) |
| Armazenamento | Tem o seu (HDFS) | Não tem; usa HDFS, S3, etc. |