Kỹ thuật xử lý dữ liệu

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

Mike Metzger

Data Engineering Consultant

Ta đang cố parse gì?

  • Dữ liệu không chuẩn
    • Hàng trống
    • Dòng chú thích
    • Dòng tiêu đề
  • Cấu trúc lồng nhau
    • Nhiều dấu phân tách
  • Dữ liệu không đều
    • Số cột mỗi hàng khác nhau
  • Tập trung vào dữ liệu CSV
width, height, image

# This is a comment
200    300    affenpinscher;0
600    450    Collie;307    Collie;101
600    449    Japanese_spaniel;23
Làm sạch dữ liệu với PySpark

Chú thích Stanford ImageNet

  • Nhận diện giống chó trong ảnh
  • Liệt kê mọi con chó được nhận diện trong ảnh
  • Metadata khác (thư mục gốc, kích thước ảnh, v.v.)

Ví dụ các hàng:

02111277    n02111277_3206    500    375    Newfoundland,110,73,416,298
02108422    n02108422_4375    500    375    bull_mastiff,101,90,214,356 \
 bull_mastiff,282,74,416,370
Làm sạch dữ liệu với PySpark

Loại bỏ dòng trống, tiêu đề, và chú thích

Bộ phân tích CSV của Spark:

  • Tự động loại bỏ dòng trống
  • Có thể bỏ qua chú thích bằng đối số tùy chọn
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • Xử lý dòng tiêu đề
    • Khai báo qua đối số
    • Bị bỏ qua nếu đã định nghĩa schema
df1 = spark.read.csv('datafile.csv.gz', header='True')
Làm sạch dữ liệu với PySpark

Tự động tạo cột

Spark sẽ:

  • Tự động tạo cột trong DataFrame dựa trên đối số sep
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • Mặc định dùng ,
  • Vẫn parse được nếu sep không có trong chuỗi
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • Lưu dữ liệu vào cột mặc định _c0
  • Cho phép xử lý đúng các dấu phân tách lồng nhau
Làm sạch dữ liệu với PySpark

Ayo berlatih!

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

Preparing Video For Download...