Immutability และ Lazy Processing

การทำความสะอาดข้อมูลด้วย PySpark

Mike Metzger

Data Engineering Consultant

ทบทวนตัวแปร

ตัวแปรใน Python:

  • เปลี่ยนแปลงได้
  • มีความยืดหยุ่น
  • อาจเกิดปัญหากับ concurrency
  • มีแนวโน้มเพิ่มความซับซ้อน
การทำความสะอาดข้อมูลด้วย PySpark

Immutability

ตัวแปรแบบ immutable:

  • เป็นส่วนหนึ่งของ functional programming
  • กำหนดค่าครั้งเดียว
  • ไม่สามารถแก้ไขโดยตรงได้
  • สร้างใหม่เมื่อมีการกำหนดค่าซ้ำ
  • แชร์ข้อมูลได้อย่างมีประสิทธิภาพ
การทำความสะอาดข้อมูลด้วย PySpark

ตัวอย่าง Immutability

สร้าง data frame ใหม่:

voter_df = spark.read.csv('voterdata.csv')

การเปลี่ยนแปลงข้อมูล:

voter_df = voter_df.withColumn('fullyear', 
    voter_df.year + 2000)

voter_df = voter_df.drop(voter_df.year)
การทำความสะอาดข้อมูลด้วย PySpark

Lazy Processing

  • ช้าไปหรือเปล่า?
  • Transformations
  • Actions
  • ช่วยให้วางแผนได้อย่างมีประสิทธิภาพ
voter_df = voter_df.withColumn('fullyear', 
    voter_df.year + 2000)
voter_df = voter_df.drop(voter_df.year)

voter_df.count()
การทำความสะอาดข้อมูลด้วย PySpark

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

การทำความสะอาดข้อมูลด้วย PySpark

Preparing Video For Download...