Anda mendefinisikannya? Anda menggunakannya!

Pengantar PySpark

Benjamin Schmidt

Data Engineer

UDF untuk tugas berulang

UDF (Fungsi yang Didefinisikan Pengguna): fungsi kustom untuk bekerja dengan data menggunakan PySpark DataFrames

Keuntungan UDF:

  • Mengulang dan mengulangi tugas umum
  • Didaftarkan langsung dengan Spark dan dapat dibagikan
  • PySpark DataFrames (untuk dataset kecil)
  • pandas UDFs (untuk dataset besar)
Pengantar PySpark

Mendefinisikan dan mendaftarkan UDF

Semua UDF PySpark perlu didaftarkan melalui fungsi udf().

# Definisikan fungsi
def to_uppercase(s):
    return s.upper() if s else None

# Daftarkan fungsi to_uppercase_udf = udf(to_uppercase, StringType())
# Terapkan UDF ke DataFrame df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# Lihat hasilnya df.show()

Ingat: UDF memungkinkan Anda menerapkan logika Python kustom pada PySpark DataFrames

Pengantar PySpark

pandas UDF

  • Menghilangkan konversi kode dan data yang mahal
  • Tidak perlu didaftarkan ke SparkSession
  • Menggunakan kemampuan pandas pada dataset yang sangat besar
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
Pengantar PySpark

PySpark UDF vs. pandas UDF

PySpark UDF

  • Terbaik untuk dataset yang relatif kecil
  • Transformasi sederhana seperti pembersihan data
  • Perubahan terjadi pada tingkat kolom, bukan baris
  • Harus didaftarkan ke Spark Session dengan udf()

pandas UDF

  • Dataset yang relatif besar
  • Operasi kompleks di luar pembersihan data sederhana
  • Perubahan spesifik pada tingkat baris dibandingkan kolom
  • Dapat dipanggil di luar Spark Session
Pengantar PySpark

Mari berlatih!

Pengantar PySpark

Preparing Video For Download...