Introdução ao PySpark
Ben Schmidt
Data Engineer
.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())
.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})
.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)
withColumnRenamed() para renomear colunas# Renomear coluna 'age' para 'years'
df = df.withColumnRenamed("age", "years")
drop() para remover colunas desnecessárias# Remover coluna 'department'
df = df.drop("department")
.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)
.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")
Filtragem
+------+---+-----------------+
|salary|age| occupation |
+------+---+-----------------+
| 60000| 45|Exec-managerial |
| 70000| 35|Prof-specialty |
+------+---+-----------------+
GroupBy
`
+----------+-----------+
|department|avg(salary)|
+----------+-----------+
| HR| 80000.0|
| IT| 70000.0|
+----------+-----------+
`
# 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")
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)
.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