Manipulação de dados com DataFrames

Introdução ao PySpark

Ben Schmidt

Data Engineer

Tratando dados ausentes

  • Use .na.drop() para remover linhas com valores nulos
# Remover linhas com nulos
df_cleaned = df.na.drop()

# Filtrar nulos df_cleaned = df.where(col("columnName").isNotNull())
  • Use .na.fill({"column": value) para substituir nulos por um valor específico
# Preencher nulos na coluna idade com 0
df_filled = df.na.fill({"age": 0})
Introdução ao PySpark

Operações com colunas

  • Use .withColumn() para adicionar uma nova coluna baseada em cálculos ou colunas existentes
# Criar nova coluna 'age_plus_5'
df = df.withColumn("age_plus_5", df["age"] + 5)
  • Use withColumnRenamed() para renomear colunas
# Renomear coluna 'age' para 'years'
df = df.withColumnRenamed("age", "years")
  • Use drop() para remover colunas desnecessárias
# Remover coluna 'department'
df = df.drop("department")
Introdução ao PySpark

Operações com linhas

  • Use .filter() para selecionar linhas com base em condições específicas
# Filtrar linhas onde salário é maior que 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Use .groupBy() e funções de agregação (ex.: .sum(), .avg()) para resumir dados
# Agrupar por departamento e calcular média salarial
grouped_df = df.groupBy("department").avg("salary")
Introdução ao PySpark

Resultados das Operações com Linhas

  • Filtragem

    +------+---+-----------------+
    |salary|age|      occupation |
    +------+---+-----------------+
    | 60000| 45|Exec-managerial  |
    | 70000| 35|Prof-specialty   |
    +------+---+-----------------+
    
  • GroupBy ` +----------+-----------+ |department|avg(salary)| +----------+-----------+ | HR| 80000.0| | IT| 70000.0| +----------+-----------+

`

Introdução ao PySpark

Guia Rápido

# Remover linhas com nulos
df_cleaned = df.na.drop()

# Remover nulos em uma coluna df_cleaned = df.where(col("columnName").isNotNull())
# Preencher nulos na coluna idade com 0 df_filled = df.na.fill({"age": 0})
  • Use .withColumn() para adicionar uma nova coluna baseada em cálculos ou colunas existentes. Sintaxe: .withColumn("new_col_name", "original transformation")

    # Criar nova coluna 'age_plus_5'
    df = df.withColumn("age_plus_5", df["age"] + 5)
    
  • Use withColumnRenamed() para renomear colunas Sintaxe: withColumnRenamed(old column name,new column name`

# Renomear coluna 'age' para 'years'
df = df.withColumnRenamed("age", "years")
  • Use drop() para remover colunas desnecessárias Sintaxe: .drop(column name)
# Remover coluna 'department'
df = df.drop("department")
# Filtrar linhas onde salário é maior que 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Use .groupBy() e funções de agregação (ex.: .sum(), .avg()) para resumir dados
# Agrupar por departamento e calcular média salarial
grouped_df = df.groupBy("department").avg("salary")
Introdução ao PySpark

Vamos praticar!

Introdução ao PySpark

Preparing Video For Download...