Vous la définissez ? Vous l'utilisez !

Introduction à PySpark

Benjamin Schmidt

Data Engineer

UDF pour des tâches répétables

UDF (User-Defined Function) : fonction personnalisée pour traiter des données avec des DataFrames PySpark

Avantages des UDF :

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

Définir et enregistrer une UDF

Toutes les UDF PySpark doivent être enregistrées avec 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()

À retenir : les UDF permettent d'appliquer une logique Python personnalisée sur des DataFrames PySpark

Introduction à PySpark

pandas UDF

  • Élimine des conversions coûteuses de code et de données
  • N'a pas besoin d'être enregistrée dans la SparkSession
  • Exploite pandas sur des ensembles de données très volumineux
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 pandas UDF

UDF PySpark

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

pandas UDF

  • Ensembles de données plutôt grands
  • Opérations complexes au-delà du simple nettoyage
  • Modifications ciblées au niveau des lignes plutôt que des colonnes
  • Peut être appelée hors de la session Spark
Introduction à PySpark

Passons à la pratique !

Introduction à PySpark

Preparing Video For Download...