Operazioni avanzate sui DataFrame

Introduzione a PySpark

Ben Schmidt

Data Engineer

Join in PySpark

  • Combina righe da due o più DataFrame basandosi su colonne comuni
  • Tipi di join: inner, left, right e outer, come in SQL

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

# Join sulla colonna id usando un inner join
df_joined = df1.join(df2, on="id", how="inner")

# Join su colonne con nomi diversi df_joined = df1.join(df2, df1.Id == df2.Name, "inner")
Introduzione a PySpark

Operazione di unione

  • Combina righe da due DataFrame con lo stesso schema

  • Sintassi: DataFrame1.union(DataFrame2)

# Unione di due DataFrame con schemi identici
df_union = df1.union(df2)
Introduzione a PySpark

Lavorare con Array e Mappe

Array: Utili per memorizzare liste nelle colonne, sintassi: ArrayType(StringType(),False)`

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

# Crea una colonna array
df = df.withColumn("scores", array(lit(85), lit(90), lit(78)))

Mappe: Coppie chiave-valore, utili per dati tipo dizionario, MapType(StringType(),StringType())

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

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

Lavorare con Struct

  • Struct: Crea strutture nidificate nelle righe Sintassi: StructType(Structfield, Datatype())
# Crea una colonna struct
df = df.withColumn("name_struct", struct("first_name", "last_name"))

# Crea una colonna struct df = df.withColumn("name_struct", struct("first_name", "last_name"))
Introduzione a PySpark

Facciamo pratica!

Introduzione a PySpark

Preparing Video For Download...