Definieer je het? Gebruik het!

Introductie tot PySpark

Benjamin Schmidt

Data Engineer

UDFs voor herhaalbare taken

UDF (User-Defined Function): aangepaste functie voor data met PySpark DataFrames

Voordelen van UDFs:

  • Hergebruik en herhaal veelvoorkomende taken
  • Direct geregistreerd bij Spark en deelbaar
  • PySpark DataFrames (voor kleinere datasets)
  • pandas UDFs (voor grotere datasets)
Introductie tot PySpark

Een UDF definiëren en registreren

Alle PySpark UDFs moeten worden geregistreerd via de udf() functie.

# Definieer de functie
def to_uppercase(s):
    return s.upper() if s else None

# Registreer de functie to_uppercase_udf = udf(to_uppercase, StringType())
# Pas de UDF toe op de DataFrame df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# Bekijk de resultaten df.show()

Onthoud: UDFs laten je aangepaste Python-logica toepassen op PySpark DataFrames

Introductie tot PySpark

pandas UDF

  • Vermijdt dure conversies van code en data
  • Hoeft niet te worden geregistreerd bij de SparkSession
  • Gebruikt pandas-mogelijkheden op zeer grote datasets
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
Introductie tot PySpark

PySpark UDFs vs. pandas UDFs

PySpark UDF

  • Beste voor relatief kleine datasets
  • Eenvoudige transformaties zoals datacleaning
  • Wijzigingen op kolomniveau, niet op rijniveau
  • Moet worden geregistreerd bij een Spark Session met udf()

pandas UDF

  • Relatief grote datasets
  • Complexe bewerkingen buiten eenvoudige datacleaning
  • Specifieke rijniveau wijzigingen boven kolomniveau
  • Kan buiten de Spark Session worden aangeroepen
Introductie tot PySpark

Aan de slag!

Introductie tot PySpark

Preparing Video For Download...