Mais sobre Spark DataFrames

Introdução ao PySpark

Benjamin Schmidt

Data Engineer

Criando DataFrames de várias fontes de dados

  • Arquivos CSV: Comuns para dados estruturados e delimitados
  • Arquivos JSON: Formato de dados semi-estruturado e hierárquico
  • Arquivos Parquet: Otimizados para armazenamento e consulta, usados em engenharia de dados
  • Exemplo:
    spark.read.csv("path/to/file.csv")
    
  • Exemplo:
    spark.read.json("path/to/file.json")
    
  • Exemplo:
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
Introdução ao PySpark

Inferência de esquema e definição manual de esquema

  • Spark pode inferir esquemas dos dados com inferSchema=True

  • Defina esquemas manualmente para melhor controle - útil para estruturas de dados fixas

Esquema em Escala

Introdução ao PySpark

Tipos de Dados em PySpark DataFrames

  • IntegerType: Números inteiros
    • Ex.: 1, 3478, -1890456
  • LongType: Números inteiros maiores
    • Ex.: Números assinados de 8 bytes, 922334775806
  • FloatType e DoubleType: Números de ponto flutuante para valores decimais
    • Ex.: 3.14159
  • StringType: Usado para texto ou dados de string
    • Ex.: "Este é um exemplo de string."
  • ...
Introdução ao PySpark

Sintaxe de Tipos de Dados para PySpark DataFrames

# Importe os tipos necessários como classes
from pyspark.sql.types import (StructType,
                            StructField, IntegerType,
                            StringType, ArrayType)

# Construa o esquema
schema = StructType([
    StructField("id", IntegerType(), True),
    StructField("name", StringType(), True),
    StructField("scores", ArrayType(IntegerType()), True)
])

# Defina o esquema
df = spark.createDataFrame(data, schema=schema)
Introdução ao PySpark

Operações com DataFrame - seleção e filtragem

  • Use .select() para escolher colunas específicas
  • Use .filter() ou .where() para filtrar linhas com base em condições
  • Use .sort() para ordenar por colunas
# Selecione e mostre apenas as colunas nome e idade
df.select("name", "age").show()
# Filtre por idade > 30
df.filter(df["age"] > 30).show()
# Use Where para filtrar um valor específico
df.where(df["age"] == 30).show()
# Use Sort para ordenar por idade
df.sort("age", ascending=False).show()
Introdução ao PySpark

Ordenação e remoção de valores ausentes

  • Ordene dados usando .sort() ou .orderBy()
  • Use na.drop() para remover linhas com valores nulos
# Ordene usando a coluna idade
df.sort("age", ascending=False).show()

# Remova valores ausentes
df.na.drop().show()

Introdução ao PySpark

Guia rápido

  • spark.read_json(): Carregar dados de JSON
  • spark.read.schema(): Definir esquemas explicitamente
  • .na.drop(): Remover linhas com valores ausentes
  • .select(), .filter(), .sort(), .orderBy(): Funções básicas de manipulação de dados
Introdução ao PySpark

Vamos praticar!

Introdução ao PySpark

Preparing Video For Download...