Vous le définissez ? Vous l'utilisez !

Introduction à PySpark

Benjamin Schmidt

Data Engineer

UDF pour tâches répétitives

UDF (Fonction Définie par l'Utilisateur) : fonction personnalisée pour manipuler des données avec les DataFrames PySpark

Avantages des UDF :

  • Réutilisation et répétition des tâches courantes
  • Enregistrées directement avec Spark et partageables
  • DataFrames PySpark (pour petits ensembles de données)
  • UDF pandas (pour grands ensembles de données)
Introduction à PySpark

Définir et enregistrer une UDF

Toutes les UDF PySpark doivent être enregistrées via la fonction udf().

# Définir la fonction
def to_uppercase(s):
    return s.upper() if s else None

# Enregistrer la fonction to_uppercase_udf = udf(to_uppercase, StringType())
# Appliquer la UDF au DataFrame df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# Voir les résultats df.show()

Rappel : Les UDF permettent d'appliquer une logique Python personnalisée sur les DataFrames PySpark

Introduction à PySpark

UDF pandas

  • Élimine les conversions coûteuses de code et de données
  • Pas besoin d'être enregistrée dans la SparkSession
  • Utilise les capacités de pandas sur de très grands ensembles de données
from pyspark.sql.functions import pandas_udf

@pandas_udf("float")
def fahrenheit_to_celsius_pandas(temp_f):
    return (temp_f - 32) * 5.0/9.0
Introduction à PySpark

UDF PySpark vs. UDF pandas

UDF PySpark

  • Idéal pour petits ensembles de données
  • Transformations simples comme le nettoyage de données
  • Modifications au niveau des colonnes, pas des lignes
  • Doit être enregistrée dans une Spark Session avec udf()

UDF pandas

  • Grands ensembles de données
  • Opérations complexes au-delà du simple nettoyage de données
  • Modifications spécifiques au niveau des lignes
  • Peut être appelée en dehors de la Spark Session
Introduction à PySpark

Passons à la pratique !

Introduction à PySpark

Preparing Video For Download...