Resumo de Fundamentos de Apache Spark e Big Data

Fundamentos de Apache Spark e Big Data: Guia Completo para Estudantes

ResumoTeste de conhecimentoFlashcardsPodcastMapa mental

Introdução

Apache Spark é um motor distribuído de processamento de dados projetado para executar cargas de trabalho em larga escala com alta velocidade e tolerância a falhas. Neste material, você aprenderá conceitos-chave de Spark SQL, como criar e manipular RDD e DataFrames, como instalar e executar Spark no Google Colab, e exemplos práticos de leitura e escrita de arquivos como CSV e Parquet.

Definição: Um RDD (Resilient Distributed Dataset) é uma coleção distribuída de elementos que pode ser processada em paralelo e reconstruída a partir de suas dependências.

1. Arquitetura e principais componentes do Spark

Principais Componentes

  • Spark Core: Motor base que gerencia tarefas, memória, agendamento e tolerância a falhas.
  • Spark SQL: Pacote para trabalhar com dados estruturados e executar consultas SQL juntamente com operações programáticas.
  • Spark Streaming: Processa dados em tempo real (streams) com tolerância a falhas similar ao Spark Core.
  • MLlib: Biblioteca de aprendizado de máquina com algoritmos de classificação, regressão e clusterização.
  • GraphX: Biblioteca para processamento de grafos e algoritmos como PageRank.
ComponenteUso principalExemplo de tarefa
Spark CoreGerenciamento de execução e memóriaCoordenação de tarefas em cluster
Spark SQLDados estruturados e consultasConsultas SQL sobre tabelas Parquet
Spark StreamingProcessamento de streamsIngestão de eventos em tempo real
MLlibModelagem preditivaClassificação e clusterização
GraphXProcessamento de grafosCálculo de PageRank

Você sabia que o Spark permite combinar diferentes tipos de processamento (por exemplo, consultas interativas e transmissão) dentro do mesmo motor sem ferramentas adicionais?

Usuários Típicos

  • Cientistas de dados: realizam análises ad hoc e precisam de respostas rápidas através de APIs acessíveis (Python, Scala, R, Java, SQL).
  • Engenheiros de dados: desenvolvem pipelines produtivos, supervisionam e ajustam aplicações distribuídas.

2. RDD: conceitos e criação

Principais Características

  • Dependências: descrição de como um RDD é construído para que possa ser reconstruído, se necessário.
  • Partições: divisão física para paralelizar o trabalho entre executores.
  • Função de Cálculo: produz os iteradores com os dados que o RDD contém.

Definição: Partição é a unidade de paralelismo no Spark; um RDD é dividido em uma ou mais partições que são processadas em paralelo.

Formas de Criar RDD

  1. RDD vazio:
    • rdd_vacio = sc.emptyRDD()
    • rdd_vacio3 = sc.parallelize([], 3) cria um RDD vazio com 3 partições
  2. A partir de uma lista:
    • rdd = sc.parallelize([1,2,3,4,5]) e depois rdd.collect() para ver o conteúdo
  3. A partir de um arquivo de texto:
    • rdd_texto = sc.textFile('./rdd_source.txt') (cada linha = um registro)
    • rdd_text_completo = sc.wholeTextFiles('./rdd_source.txt') (arquivo completo como um único registro)
  4. A partir de outro RDD (transformações):
    • rdd_suma = rdd.map(lambda x: x + 1)
  5. A partir de um DataFrame:
    • df = Spark.createDataFrame([(1,'Jose'),(2,'Juan')], ['id','Nombre'])
    • rdd_from_df = df.rdd

Curiosidade: Spark armazena metadados de como construir RDDs usando seu grafo de dependências, o que lhe permite recomputar partições em caso de falhas sem replicar todos os dados.

3. Spark Session e ambiente no Google Colab

O que é Google Colab?

Google Colab é um serviço gratuito baseado em Jupyter Notebook que permite executar código Python na nuvem, ideal para experimentar com Spark sem instalar localmente.

Passos resumidos para usar Spark no Colab

  1. Instalar Java 8:
    • !apt-get install openjdk-8-jdk-headless -qq
  2. Baixar e descompactar Spark (exemplo com Spark 3.2.3):
    • !wget -q https://archive.apache.org/dist/Spark/Spark-3.2.3/Spark-3.2.3-bin-hadoop3.2.tgz
    • !tar xf Spark-3.2.3-bin-hadoop3.2.tgz
  3. Definir variá
Regista-te para o resumo completo
FlashcardsTeste de conhecimentoResumoPodcastMapa mental
Começar grátis

Já tem uma conta? Entrar

Apache Spark: Spark SQL Básico

Klíčové pojmy: Spark inclui módulos: Core, SQL, Streaming, MLlib, GraphX, RDD é uma coleção distribuída com partições e dependências, Criar RDDs: emptyRDD, parallelize, textFile, wholeTextFiles, a partir de um DataFrame, SparkSession é a entrada unificada para o Spark, Instalação no Colab: Java 8, Spark, findSpark, pySpark e configurar variáveis de ambiente, Ler CSV: Spark.read.csv(sep, header=True) e salvar/ler Parquet com write.parquet/read.parquet, DataFrame: select, selectExpr, filter/where, distinct/dropDuplicates, Transformações são preguiçosas; ações materializam resultados, Parquet é colunar e mais eficiente que CSV para análise, Usar col('colname') e funções de pyspark.sql.functions para criar expressões

## Introdução Apache Spark é um motor distribuído de processamento de dados projetado para executar cargas de trabalho em larga escala com alta velocidade e tolerância a falhas. Neste material, você aprenderá conceitos-chave de Spark SQL, como criar e manipular RDD e DataFrames, como instalar e executar Spark no Google Colab, e exemplos práticos de leitura e escrita de arquivos como CSV e Parquet. > **Definição:** Um RDD (Resilient Distributed Dataset) é uma coleção distribuída de elementos que pode ser processada em paralelo e reconstruída a partir de suas dependências. ## 1. Arquitetura e principais componentes do Spark ### Principais Componentes - **Spark Core**: Motor base que gerencia tarefas, memória, agendamento e tolerância a falhas. - **Spark SQL**: Pacote para trabalhar com dados estruturados e executar consultas SQL juntamente com operações programáticas. - **Spark Streaming**: Processa dados em tempo real (streams) com tolerância a falhas similar ao Spark Core. - **MLlib**: Biblioteca de aprendizado de máquina com algoritmos de classificação, regressão e clusterização. - **GraphX**: Biblioteca para processamento de grafos e algoritmos como PageRank. | Componente | Uso principal | Exemplo de tarefa | |---|---:|---| | Spark Core | Gerenciamento de execução e memória | Coordenação de tarefas em cluster | | Spark SQL | Dados estruturados e consultas | Consultas SQL sobre tabelas Parquet | | Spark Streaming | Processamento de streams | Ingestão de eventos em tempo real | | MLlib | Modelagem preditiva | Classificação e clusterização | | GraphX | Processamento de grafos | Cálculo de PageRank | Você sabia que o Spark permite combinar diferentes tipos de processamento (por exemplo, consultas interativas e transmissão) dentro do mesmo motor sem ferramentas adicionais? ### Usuários Típicos - **Cientistas de dados**: realizam análises ad hoc e precisam de respostas rápidas através de APIs acessíveis (Python, Scala, R, Java, SQL). - **Engenheiros de dados**: desenvolvem pipelines produtivos, supervisionam e ajustam aplicações distribuídas. ## 2. RDD: conceitos e criação ### Principais Características - **Dependências**: descrição de como um RDD é construído para que possa ser reconstruído, se necessário. - **Partições**: divisão física para paralelizar o trabalho entre executores. - **Função de Cálculo**: produz os iteradores com os dados que o RDD contém. > **Definição:** Partição é a unidade de paralelismo no Spark; um RDD é dividido em uma ou mais partições que são processadas em paralelo. ### Formas de Criar RDD 1. RDD vazio: - `rdd_vacio = sc.emptyRDD()` - `rdd_vacio3 = sc.parallelize([], 3)` cria um RDD vazio com 3 partições 2. A partir de uma lista: - `rdd = sc.parallelize([1,2,3,4,5])` e depois `rdd.collect()` para ver o conteúdo 3. A partir de um arquivo de texto: - `rdd_texto = sc.textFile('./rdd_source.txt')` (cada linha = um registro) - `rdd_text_completo = sc.wholeTextFiles('./rdd_source.txt')` (arquivo completo como um único registro) 4. A partir de outro RDD (transformações): - `rdd_suma = rdd.map(lambda x: x + 1)` 5. A partir de um DataFrame: - `df = Spark.createDataFrame([(1,'Jose'),(2,'Juan')], ['id','Nombre'])` - `rdd_from_df = df.rdd` Curiosidade: Spark armazena metadados de como construir RDDs usando seu grafo de dependências, o que lhe permite recomputar partições em caso de falhas sem replicar todos os dados. ## 3. Spark Session e ambiente no Google Colab ### O que é Google Colab? Google Colab é um serviço gratuito baseado em Jupyter Notebook que permite executar código Python na nuvem, ideal para experimentar com Spark sem instalar localmente. ### Passos resumidos para usar Spark no Colab 1. Instalar Java 8: - `!apt-get install openjdk-8-jdk-headless -qq` 2. Baixar e descompactar Spark (exemplo com Spark 3.2.3): - `!wget -q https://archive.apache.org/dist/Spark/Spark-3.2.3/Spark-3.2.3-bin-hadoop3.2.tgz` - `!tar xf Spark-3.2.3-bin-hadoop3.2.tgz` 3. Definir variá