Tìm hiểu Parquet

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

Mike Metzger

Data Engineering Consultant

Khó khăn với tệp CSV

  • Không có schema cố định
  • Dữ liệu lồng nhau cần xử lý riêng
  • Định dạng mã hóa hạn chế
Làm sạch dữ liệu với PySpark

Spark và tệp CSV

  • Phân tích chậm
  • Không lọc được tệp (không có "predicate pushdown")
  • Mọi bước trung gian đều phải định nghĩa lại schema
Làm sạch dữ liệu với PySpark

Định dạng Parquet

  • Định dạng dữ liệu dạng cột
  • Được hỗ trợ trong Spark và các framework xử lý dữ liệu khác
  • Hỗ trợ predicate pushdown
  • Tự động lưu thông tin schema
Làm sạch dữ liệu với PySpark

Làm việc với Parquet

Đọc tệp Parquet

df = spark.read.format('parquet').load('filename.parquet')
df = spark.read.parquet('filename.parquet')

Ghi tệp Parquet

df.write.format('parquet').save('filename.parquet')
df.write.parquet('filename.parquet')
Làm sạch dữ liệu với PySpark

Parquet và SQL

Dùng Parquet làm kho cho thao tác SparkSQL

flight_df = spark.read.parquet('flights.parquet')
flight_df.createOrReplaceTempView('flights')
short_flights_df = spark.sql('SELECT * FROM flights WHERE flightduration < 100')
Làm sạch dữ liệu với PySpark

Luyện tập nào!

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

Preparing Video For Download...