U 정의, U 사용!

PySpark 입문

Benjamin Schmidt

Data Engineer

반복 작업을 위한 UDF

UDF (User-Defined Function): PySpark DataFrame로 데이터를 처리하는 사용자 정의 함수

UDF의 장점:

  • 반복 작업 재사용
  • Spark에 직접 등록·공유 가능
  • PySpark DataFrame용(소규모 데이터셋)
  • pandas UDF용(대규모 데이터셋)
PySpark 입문

UDF 정의와 등록

모든 PySpark UDF는 udf() 함수로 등록해야 합니다.

# 함수 정의
def to_uppercase(s):
    return s.upper() if s else None

# 함수 등록 to_uppercase_udf = udf(to_uppercase, StringType())
# DataFrame에 UDF 적용 df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# 결과 확인 df.show()

기억하세요: UDF로 PySpark DataFrame에 사용자 정의 Python 로직을 적용할 수 있습니다

PySpark 입문

pandas UDF

  • 코드·데이터 변환 비용 제거
  • SparkSession에 등록할 필요 없음
  • 매우 큰 데이터셋에 pandas 기능 활용
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
PySpark 입문

PySpark UDF vs. pandas UDF

PySpark UDF

  • 비교적 작은 데이터셋에 적합
  • 데이터 정제 같은 단순 변환
  • 행 수준이 아닌 열 수준에서 변경
  • udf()로 Spark Session에 등록 필요

pandas UDF

  • 비교적 큰 데이터셋
  • 단순 정제를 넘는 복잡 연산
  • 열 수준보다 행 수준의 특정 변경
  • Spark Session 밖에서도 호출 가능
PySpark 입문

연습해 봅시다!

PySpark 입문

Preparing Video For Download...