Opérations avancées sur les DataFrames

Introduction à PySpark

Ben Schmidt

Data Engineer

Jointures dans PySpark

  • Combiner des lignes de deux DataFrames ou plus selon des colonnes communes
  • Types de jointures : inner, left, right et outer, comme en SQL

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

# Jointure sur la colonne id avec une jointure inner
df_joined = df1.join(df2, on="id", how="inner")

# Jointure sur des colonnes de noms différents df_joined = df1.join(df2, df1.Id == df2.Name, "inner")
Introduction à PySpark

Opération d'union

  • Combine les lignes de deux DataFrames ayant le même schéma

  • Syntaxe : DataFrame1.union(DataFrame2)

# Union de deux DataFrames avec des schémas identiques
df_union = df1.union(df2)
Introduction à PySpark

Utiliser les Arrays et les Maps

Tableaux : utiles pour stocker des listes dans des colonnes, syntaxe : ArrayType(StringType(),False)`

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

# Créer une colonne tableau
df = df.withColumn("scores", array(lit(85), lit(90), lit(78)))

Maps : paires clé-valeur, pratiques pour des données de type dictionnaire, MapType(StringType(),StringType())

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

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

Utiliser les Structs

  • Structs : créer des structures imbriquées dans les lignes. Syntaxe : StructType(Structfield, Datatype())
# Créer une colonne struct
df = df.withColumn("name_struct", struct("first_name", "last_name"))

# Créer une colonne struct df = df.withColumn("name_struct", struct("first_name", "last_name"))
Introduction à PySpark

Passons à la pratique !

Introduction à PySpark

Preparing Video For Download...