Manipulation de données avec DataFrames

Introduction à PySpark

Ben Schmidt

Data Engineer

Gestion des données manquantes

  • Utilisez .na.drop() pour supprimer les lignes avec des valeurs nulles
# Supprimer les lignes avec des valeurs nulles
df_cleaned = df.na.drop()

# Filtrer les valeurs nulles df_cleaned = df.where(col("columnName").isNotNull())
  • Utilisez .na.fill({"column": value) pour remplacer les valeurs nulles par une valeur spécifique
# Remplir les valeurs nulles dans la colonne âge avec la valeur 0
df_filled = df.na.fill({"age": 0})
Introduction à PySpark

Opérations sur les colonnes

  • Utilisez .withColumn() pour ajouter une nouvelle colonne basée sur des calculs ou des colonnes existantes
# Créer une nouvelle colonne 'age_plus_5'
df = df.withColumn("age_plus_5", df["age"] + 5)
  • Utilisez withColumnRenamed() pour renommer des colonnes
# Renommer la colonne 'age' en 'years'
df = df.withColumnRenamed("age", "years")
  • Utilisez drop() pour supprimer des colonnes inutiles
# Supprimer la colonne 'department'
df = df.drop("department")
Introduction à PySpark

Opérations sur les lignes

  • Utilisez .filter() pour sélectionner des lignes selon des conditions spécifiques
# Filtrer les lignes où le salaire est supérieur à 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Utilisez .groupBy() et des fonctions d'agrégation (par ex., .sum(), .avg()) pour résumer les données
# Grouper par département et calculer le salaire moyen
grouped_df = df.groupBy("department").avg("salary")
Introduction à PySpark

Résultats des opérations sur les lignes

  • Filtrage

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

`

Introduction à PySpark

Aide-mémoire

# Supprimer les lignes avec des valeurs nulles
df_cleaned = df.na.drop()

# Supprimer les valeurs nulles d'une colonne df_cleaned = df.where(col("columnName").isNotNull())
# Remplir les valeurs nulles dans la colonne âge avec la valeur 0 df_filled = df.na.fill({"age": 0})
  • Utilisez .withColumn() pour ajouter une nouvelle colonne basée sur des calculs ou des colonnes existantes. Syntaxe : .withColumn("new_col_name", "original transformation")

    # Créer une nouvelle colonne 'age_plus_5'
    df = df.withColumn("age_plus_5", df["age"] + 5)
    
  • Utilisez withColumnRenamed() pour renommer des colonnes Syntaxe : withColumnRenamed(old column name,new column name`

# Renommer la colonne 'age' en 'years'
df = df.withColumnRenamed("age", "years")
  • Utilisez drop() pour supprimer des colonnes inutiles Syntaxe : .drop(column name)
# Supprimer la colonne 'department'
df = df.drop("department")
# Filtrer les lignes où le salaire est supérieur à 50000
filtered_df = df.filter(df["salary"] > 50000)
  • Utilisez .groupBy() et des fonctions d'agrégation (par ex., .sum(), .avg()) pour résumer les données
# Grouper par département et calculer le salaire moyen
grouped_df = df.groupBy("department").avg("salary")
Introduction à PySpark

Passons à la pratique !

Introduction à PySpark

Preparing Video For Download...