สร้างเองแล้วใช้เอง!

PySpark เบื้องต้น

Benjamin Schmidt

Data Engineer

UDF สำหรับงานที่ทำซ้ำ

UDF (User-Defined Function): ฟังก์ชันที่กำหนดเองสำหรับทำงานกับข้อมูลผ่าน PySpark DataFrames

ข้อดีของ UDF:

  • นำกลับมาใช้ซ้ำสำหรับงานที่ทำบ่อย
  • ลงทะเบียนกับ Spark ได้โดยตรงและแชร์ได้
  • PySpark DataFrames (สำหรับชุดข้อมูลขนาดเล็ก)
  • pandas UDFs (สำหรับชุดข้อมูลขนาดใหญ่)
PySpark เบื้องต้น

การสร้างและลงทะเบียน UDF

PySpark UDF ทุกตัวต้องลงทะเบียนผ่านฟังก์ชัน 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()

จำไว้: UDF ช่วยให้นำ Python logic ที่กำหนดเองไปใช้กับ PySpark DataFrames ได้

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 UDFs เทียบกับ pandas UDFs

PySpark UDF

  • เหมาะกับชุดข้อมูลขนาดเล็ก
  • การแปลงข้อมูลอย่างง่าย เช่น การทำความสะอาดข้อมูล
  • การเปลี่ยนแปลงเกิดในระดับคอลัมน์ ไม่ใช่ระดับแถว
  • ต้องลงทะเบียนกับ Spark Session ด้วย udf()

pandas UDF

  • ชุดข้อมูลขนาดใหญ่
  • การดำเนินการซับซ้อนที่เกินกว่าการทำความสะอาดข้อมูลทั่วไป
  • การเปลี่ยนแปลงในระดับแถวมากกว่าระดับคอลัมน์
  • เรียกใช้นอก Spark Session ได้
PySpark เบื้องต้น

มาฝึกกันเถอะ!

PySpark เบื้องต้น

Preparing Video For Download...