Manipulación de datos con DataFrames

Introducción a PySpark

Ben Schmidt

Data Engineer

Manejo de datos faltantes

  • Usa .na.drop() para eliminar filas con valores nulos
# Eliminar filas con nulos
df_cleaned = df.na.drop()

# Filtrar nulos df_cleaned = df.where(col("columnName").isNotNull())
  • Usa .na.fill({"column": value) para reemplazar nulos con un valor específico
# Rellenar nulos en la columna edad con 0
df_filled = df.na.fill({"age": 0})
Introducción a PySpark

Operaciones con columnas

  • Usa .withColumn() para añadir una nueva columna basada en cálculos o columnas existentes
# Crear una nueva columna 'age_plus_5'
df = df.withColumn("age_plus_5", df["age"] + 5)
  • Usa withColumnRenamed() para renombrar columnas
# Renombrar la columna 'age' a 'years'
df = df.withColumnRenamed("age", "years")
  • Usa drop() para eliminar columnas innecesarias
# Eliminar la columna 'department'
df = df.drop("department")
Introducción a PySpark

Operaciones con filas

  • Usa .filter() para seleccionar filas basadas en condiciones específicas
# Filtrar filas donde el salario es mayor a 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Usa .groupBy() y funciones de agregación (e.g., .sum(), .avg()) para resumir datos
# Agrupar por departamento y calcular el salario promedio
grouped_df = df.groupBy("department").avg("salary")
Introducción a PySpark

Resultados de operaciones con filas

  • Filtrado

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

`

Introducción a PySpark

Guía rápida

# Eliminar filas con nulos
df_cleaned = df.na.drop()

#Eliminar nulos en una columna df_cleaned = df.where(col("columnName").isNotNull())
# Rellenar nulos en la columna edad con 0 df_filled = df.na.fill({"age": 0})
  • Usa .withColumn() para añadir una nueva columna basada en cálculos o columnas existentes. Sintaxis: .withColumn("new_col_name", "original transformation")

    # Crear una nueva columna 'age_plus_5'
    df = df.withColumn("age_plus_5", df["age"] + 5)
    
  • Usa withColumnRenamed() para renombrar columnas Sintaxis: withColumnRenamed(old column name,new column name`

# Renombrar la columna 'age' a 'years'
df = df.withColumnRenamed("age", "years")
  • Usa drop() para eliminar columnas innecesarias Sintaxis: .drop(column name)
# Eliminar la columna 'department'
df = df.drop("department")
# Filtrar filas donde el salario es mayor a 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Usa .groupBy() y funciones de agregación (e.g., .sum(), .avg()) para resumir datos
# Agrupar por departamento y calcular el salario promedio
grouped_df = df.groupBy("department").avg("salary")
Introducción a PySpark

¡Vamos a practicar!

Introducción a PySpark

Preparing Video For Download...