Definierst du es? Nutze es!

Einführung in PySpark

Benjamin Schmidt

Data Engineer

UDFs für wiederholbare Aufgaben

UDF (User-Defined Function): benutzerdefinierte Funktion für Daten mit PySpark DataFrames

Vorteile von UDFs:

  • Wiederverwendung und Wiederholung von Aufgaben
  • Direkt mit Spark registrierbar und teilbar
  • PySpark DataFrames (für kleinere Datensätze)
  • pandas UDFs (für größere Datensätze)
Einführung in PySpark

Definieren und Registrieren einer UDF

Alle PySpark UDFs müssen über die udf()-Funktion registriert werden.

# Funktion definieren
def to_uppercase(s):
    return s.upper() if s else None

# Funktion registrieren to_uppercase_udf = udf(to_uppercase, StringType())
# UDF auf DataFrame anwenden df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# Ergebnisse anzeigen df.show()

Merke: UDFs ermöglichen benutzerdefinierte Python-Logik auf PySpark DataFrames

Einführung in PySpark

pandas UDF

  • Vermeidet teure Konvertierungen von Code und Daten
  • Muss nicht zur SparkSession registriert werden
  • Nutzt pandas-Fähigkeiten bei sehr großen Datensätzen
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
Einführung in PySpark

PySpark UDFs vs. pandas UDFs

PySpark UDF

  • Am besten für relativ kleine Datensätze
  • Einfache Transformationen wie Datenbereinigung
  • Änderungen auf Spaltenebene, nicht auf Zeilenebene
  • Muss mit udf() zur Spark Session registriert werden

pandas UDF

  • Relativ große Datensätze
  • Komplexe Operationen über einfache Datenbereinigung hinaus
  • Spezifische Zeilenänderungen über Spaltenänderungen
  • Kann außerhalb der Spark Session aufgerufen werden
Einführung in PySpark

Lass uns üben!

Einführung in PySpark

Preparing Video For Download...