U define it? U use it!

Introduktion till PySpark

Benjamin Schmidt

Data Engineer

UDF:er för återanvändbara uppgifter

UDF (User-Defined Function): anpassad funktion för att arbeta med data via PySpark-dataframes

Fördelar med UDF:er:

  • Återanvänd och upprepa vanliga uppgifter
  • Registreras direkt i Spark och kan delas
  • PySpark DataFrames (för mindre datamängder)
  • pandas UDF:er (för större datamängder)
Introduktion till PySpark

Definiera och registrera en UDF

Alla PySpark-UDF:er måste registreras via funktionen udf().

# Define the function
def to_uppercase(s):
    return s.upper() if s else None

# Register the function to_uppercase_udf = udf(to_uppercase, StringType())
# Apply the UDF to the DataFrame df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# See the results df.show()

Kom ihåg: UDF:er låter dig tillämpa anpassad Python-logik på PySpark DataFrames

Introduktion till PySpark

pandas UDF

  • Eliminerar kostsamma konverteringar av kod och data
  • Behöver inte registreras i SparkSession
  • Använder pandas-funktioner på mycket stora datamängder
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
Introduktion till PySpark

PySpark UDF:er vs. pandas UDF:er

PySpark UDF

  • Passar relativt små datamängder
  • Enkla transformationer som datarensning
  • Ändringar sker på kolumnnivå, inte radnivå
  • Måste registreras i en Spark Session med udf()

pandas UDF

  • Relativt stora datamängder
  • Komplexa operationer utöver enkel datarensning
  • Specifika ändringar på radnivå snarare än kolumnnivå
  • Kan anropas utanför Spark Session
Introduktion till PySpark

Nu kör vi en övning!

Introduktion till PySpark

Preparing Video For Download...