Cải thiện hiệu năng nhập

Làm sạch dữ liệu với PySpark

Mike Metzger

Data Engineering Consultant

Cụm Spark

Cụm Spark gồm hai loại tiến trình

  • Tiến trình driver
  • Các tiến trình worker
Làm sạch dữ liệu với PySpark

Hiệu năng nhập

Tham số quan trọng:

  • Số lượng đối tượng (tệp, vị trí mạng, v.v.)
    • Nhiều đối tượng nhỏ tốt hơn đối tượng lớn
    • Có thể nhập bằng wildcard
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • Kích thước tổng thể của đối tượng
    • Spark chạy tốt hơn khi các đối tượng có kích thước tương tự
Làm sạch dữ liệu với PySpark

Schema

Schema xác định rõ sẽ cải thiện đáng kể hiệu năng nhập

  • Tránh phải đọc dữ liệu nhiều lần
  • Xác thực ngay khi nhập
Làm sạch dữ liệu với PySpark

Cách chia nhỏ đối tượng

  • Dùng tiện ích/script của hệ điều hành (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • Dùng script tùy chỉnh
  • Ghi ra Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
Làm sạch dữ liệu với PySpark

Hãy thực hành!

Làm sạch dữ liệu với PySpark

Preparing Video For Download...