Definiujesz to? Używasz tego!

Wprowadzenie do PySpark

Benjamin Schmidt

Data Engineer

UDF do zadań wielokrotnego użytku

UDF (funkcja zdefiniowana przez użytkownika): funkcja niestandardowa do pracy z danymi przy użyciu DataFrames PySpark

Zalety UDF:

  • Wielokrotne wykorzystanie typowych zadań
  • Rejestrowane bezpośrednio w Spark i możliwe do udostępnienia
  • DataFrames PySpark (dla mniejszych zbiorów danych)
  • Pandas UDF (dla większych zbiorów danych)
Wprowadzenie do PySpark

Definiowanie i rejestrowanie UDF

Każdy UDF PySpark musi być zarejestrowany za pomocą funkcji 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()

Pamiętaj: UDF umożliwiają stosowanie niestandardowej logiki Pythona na DataFrames PySpark

Wprowadzenie do PySpark

Pandas UDF

  • Eliminuje kosztowne konwersje kodu i danych
  • Nie wymaga rejestracji w SparkSession
  • Wykorzystuje możliwości pandas na bardzo dużych zbiorach danych
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
Wprowadzenie do PySpark

UDF PySpark vs. pandas UDF

PySpark UDF

  • Najlepszy dla stosunkowo małych zbiorów danych
  • Proste transformacje, np. czyszczenie danych
  • Zmiany na poziomie kolumn, nie wierszy
  • Wymaga rejestracji w Spark Session za pomocą udf()

Pandas UDF

  • Stosunkowo duże zbiory danych
  • Złożone operacje wykraczające poza proste czyszczenie danych
  • Zmiany na poziomie wierszy zamiast kolumn
  • Można wywoływać poza Spark Session
Wprowadzenie do PySpark

Czas na ćwiczenia!

Wprowadzenie do PySpark

Preparing Video For Download...