Introduction à PySpark
Ben Schmidt
Data Engineer
.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())
.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})
.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)
withColumnRenamed() pour renommer des colonnes# Renommer la colonne 'age' en 'years'
df = df.withColumnRenamed("age", "years")
drop() pour supprimer des colonnes inutiles# Supprimer la colonne 'department'
df = df.drop("department")
.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)
.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")
Filtrage
+------+---+-----------------+
|salary|age| occupation |
+------+---+-----------------+
| 60000| 45|Exec-managerial |
| 70000| 35|Prof-specialty |
+------+---+-----------------+
GroupBy
`
+----------+-----------+
|department|avg(salary)|
+----------+-----------+
| HR| 80000.0|
| IT| 70000.0|
+----------+-----------+
`
# 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")
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)
.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