ปรับปรุงประสิทธิภาพการนำเข้าข้อมูล

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

Mike Metzger

Data Engineering Consultant

Spark clusters

Spark Clusters ประกอบด้วยกระบวนการ 2 ประเภท

  • Driver process
  • Worker processes
การทำความสะอาดข้อมูลด้วย PySpark

ประสิทธิภาพการนำเข้าข้อมูล

พารามิเตอร์สำคัญ:

  • จำนวนออบเจกต์ (ไฟล์, Network locations ฯลฯ)
    • ออบเจกต์จำนวนมากดีกว่าออบเจกต์ขนาดใหญ่
    • นำเข้าด้วย wildcard ได้
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • ขนาดโดยรวมของออบเจกต์
    • Spark ทำงานได้ดีกว่าเมื่อออบเจกต์มีขนาดใกล้เคียงกัน
การทำความสะอาดข้อมูลด้วย PySpark

Schemas

การกำหนด schema ที่ชัดเจนช่วยเพิ่มประสิทธิภาพการนำเข้าข้อมูลได้อย่างมาก

  • ลดการอ่านข้อมูลซ้ำ
  • ตรวจสอบความถูกต้องขณะนำเข้า
การทำความสะอาดข้อมูลด้วย PySpark

วิธีแบ่งออบเจกต์

  • ใช้ยูทิลิตีของ OS / สคริปต์ (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • ใช้สคริปต์ที่เขียนเอง
  • เขียนออกเป็น Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
การทำความสะอาดข้อมูลด้วย PySpark

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

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

Preparing Video For Download...