Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Resumo de "Tópicos de Big Data em Python"
para Prova
Não consigo gerar um arquivo PDF diretamente nesta conversa, mas preparei um resumo
completo e organizado abaixo. Você pode copiar o conteúdo e colar em um editor (Word,
Google Docs) e salvar como PDF. Se quiser, também posso formatar em Markdown ou HTML
para facilitar a conversão.
1. Introdução ao Big Data
Os 5 Vs do Big Data:
Volume: grandes quantidades de dados (TB, PB)
Velocidade: dados gerados e processados rapidamente
Variedade: estruturados, semiestruturados e não estruturados
Veracidade: qualidade e confiabilidade dos dados
Valor: transformar dados em insights úteis
Por que Python?
Ecossistema rico (pandas, numpy, pyspark, dask)
Sintaxe simples e legível
Grande comunidade e bibliotecas para ML e análise
Integração com Hadoop, Spark, bancos NoSQL
2. Bibliotecas Essenciais
Biblioteca Função
NumPy Computação numérica, arrays multidimensionais
Pandas Manipulação de dados tabulares (DataFrame)
Dask Processamento paralelo/distribuído de grandes datasets
PySpark Interface Python para Apache Spark
Biblioteca Função
Polars DataFrame rápido em Rust (alternativa ao pandas)
Vaex DataFrames para bilhões de linhas (lazy evaluation)
Matplotlib/Seaborn Visualização
Scikit-learn Machine Learning
3. Pandas — Fundamentos
Series: array unidimensional rotulado
DataFrame: tabela bidimensional com índices
Leitura: pd.read_csv() , pd.read_parquet() , pd.read_json()
Seleção: df.loc[] (rótulo), df.iloc[] (posição)
Limpeza: dropna() , fillna() , drop_duplicates() , astype()
Agregação: groupby() , pivot_table() , agg()
Merge/Join: pd.merge() , df.join() , pd.concat()
Performance: usar category para strings repetidas, vectorização em vez de loops
Limitação: pandas carrega tudo em memória (RAM) → não escala para Big Data.
4. Processamento Distribuído com PySpark
Conceitos:
RDD (Resilient Distributed Dataset): coleção imutável distribuída
DataFrame Spark: abstração de alto nível (otimizada pelo Catalyst)
Lazy evaluation: transformações só executam quando há uma action
Transformações: map , filter , select , groupBy , join
Actions: count , collect , show , write
Exemplo básico:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("exemplo").getOrCreate()
df = spark.read.csv("dados.csv", header=True, inferSchema=True)
df.groupBy("categoria").count().show()
Vantagens: processamento em cluster, tolerância a falhas, escalabilidade horizontal.
5. Dask
Paralelismo em Python puro (usa múltiplos cores ou cluster)
API similar ao pandas ( dask.dataframe ) e numpy ( dask.array )
Lazy evaluation com grafos de tarefas
Ideal para datasets maiores que a RAM, mas que cabem em disco
dask.delayed para paralelizar funções Python arbitrárias
6. Formatos de Dados para Big Data
Formato Característica
CSV Simples, porém lento e sem esquema
Parquet Colunar, comprimido, ideal para Big Data
Avro Linha, bom para streaming
ORC Colunar, otimizado para Hive
JSON Semiestruturado, comum em APIs
Parquet é o padrão em pipelines modernos (leitura colunar + compressão).
7. Bancos de Dados NoSQL
Chave-valor: Redis, DynamoDB
Documento: MongoDB (JSON/BSON)
Colunar: Cassandra, HBase
Grafo: Neo4j
Integração Python: pymongo , redis-py , cassandra-driver .
8. Streaming de Dados
Apache Kafka: plataforma de streaming distribuído (tópicos, partições,
produtores/consumidores)
Spark Structured Streaming: processamento de streams com API DataFrame
Bibliotecas Python: kafka-python , confluent-kafka , faust
Conceitos: janelas (tumbling, sliding), watermark, exactly-once semantics.
9. Pipeline de Dados (ETL/ELT)
ETL: Extract → Transform → Load (transformação antes de carregar)
ELT: Extract → Load → Transform (transformação no destino, comum em data lakes)
Orquestração: Apache Airflow (DAGs em Python), Prefect, Luigi
Boas práticas: idempotência, logging, validação de dados, versionamento
10. Machine Learning em Big Data
Scikit-learn: bom para dados que cabem na RAM
Spark MLlib: ML distribuído ( pyspark.ml )
Dask-ML: paraleliza scikit-learn
Conceitos: feature engineering, train/test split, cross-validation, pipelines
Algoritmos comuns: regressão, classificação, clustering (KMeans), árvores
11. Boas Práticas e Performance
Preferir operações vetorizadas a loops
Usar Parquet em vez de CSV
Evitar collect() no Spark (traz tudo para o driver)
Particionar dados adequadamente
Monitorar memória e usar chunking
Cachear DataFrames reutilizados ( df.cache() no Spark)
Usar tipos de dados eficientes (int32 vs int64, category)
12. Pontos-Chave para a Prova
1. Diferença entre pandas (memória única) e Spark/Dask (distribuído)
2. Lazy evaluation em Spark e Dask
3. Quando usar Parquet vs CSV
4. Estrutura de um job Spark (transformações vs actions)
5. Conceitos de streaming (Kafka, janelas)
6. Diferença ETL vs ELT
7. Os 5 Vs do Big Data
8. Vantagens do Python no ecossistema Big Data
Dica: revise exemplos de código de groupBy , filter e leitura de arquivos em PySpark, pois
costumam cair em provas práticas.

Mais conteúdos dessa disciplina