Operaciones avanzadas con DataFrames

Introducción a PySpark

Ben Schmidt

Data Engineer

Joins en PySpark

  • Combina filas de dos o más DataFrames según columnas comunes
  • Tipos de joins: inner, left, right y outer, como en SQL

  • Sintaxis: DataFrame1.join(DataFrame2, on="column", how="join_type")

# Join en la columna id usando un inner join
df_joined = df1.join(df2, on="id", how="inner")

# Join en columnas con nombres diferentes df_joined = df1.join(df2, df1.Id == df2.Name, "inner")
Introducción a PySpark

Operación de Unión

  • Combina filas de dos DataFrames con el mismo esquema

  • Sintaxis: DataFrame1.union(DataFrame2)

# Unión de dos DataFrames con esquemas idénticos
df_union = df1.union(df2)
Introducción a PySpark

Trabajando con Arrays y Maps

Arrays: Útiles para listas en columnas, sintaxis: ArrayType(StringType(),False)`

from pyspark.sql.functions import array, struct, lit

# Crear una columna de array
df = df.withColumn("scores", array(lit(85), lit(90), lit(78)))

Maps: Pares clave-valor, útiles para datos tipo diccionario, MapType(StringType(),StringType())

from pyspark.sql.types import StructField, StructType, StringType, MapType

schema = StructType([
    StructField('name', StringType(), True),
    StructField('properties', MapType(StringType(), StringType()), True)
])
Introducción a PySpark

Trabajando con Structs

  • Structs: Crea estructuras anidadas en filas. Sintaxis: StructType(Structfield, Datatype())
# Crear una columna struct
df = df.withColumn("name_struct", struct("first_name", "last_name"))

# Crear una columna struct df = df.withColumn("name_struct", struct("first_name", "last_name"))
Introducción a PySpark

¡Vamos a practicar!

Introducción a PySpark

Preparing Video For Download...