Definujete ji? Použijte ji!

Introduction to PySpark

Benjamin Schmidt

Data Engineer

UDF pro opakované úlohy

UDF (User-Defined Function): vlastní funkce pro práci s daty v PySpark DataFramech

Výhody UDF:

  • Opakované použití běžných úloh
  • Registrovány přímo ve Sparku a sdílitelné
  • PySpark DataFramy (pro menší datové sady)
  • pandas UDF (pro větší datové sady)
Introduction to PySpark

Definice a registrace UDF

Všechny PySpark UDF musí být registrovány pomocí funkce 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()

Nezapomeňte: UDF umožňují aplikovat vlastní logiku v Pythonu na PySpark DataFramy

Introduction to PySpark

pandas UDF

  • Odstraňuje nákladné převody kódu a dat
  • Nevyžaduje registraci v SparkSession
  • Využívá možnosti pandas na velmi velkých datových sadách
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 to PySpark

PySpark UDF vs. pandas UDF

PySpark UDF

  • Vhodné pro relativně malé datové sady
  • Jednoduché transformace, např. čištění dat
  • Změny probíhají na úrovni sloupců, nikoli řádků
  • Musí být registrovány v Spark Session pomocí udf()

pandas UDF

  • Relativně velké datové sady
  • Složité operace nad rámec jednoduchého čištění dat
  • Změny na úrovni řádků místo sloupců
  • Lze volat mimo Spark Session
Introduction to PySpark

Pojďme si procvičit!

Introduction to PySpark

Preparing Video For Download...