Bỏ qua

Luồng lọc chất lượng dữ liệu

Xử lý song song đa luồng với Rayon

Lọc đồng thời hàng chục tệp Parquet trên toàn bộ lõi CPU:

import basaltic_red as br

rules = [
    "passenger_count > 0",
    "passenger_count <= 6",
    "trip_distance > 0.0",
    "fare_amount >= 2.5",
    "total_amount > 0.0",
]

# Lọc song song trên các tệp khớp pattern
summary = br.filter.filter_files_parallel("data/yellow_tripdata_2025-*.parquet", rules=rules)
print(f"Số tệp đã xử lý      : {summary['total_files']:,}")
print(f"Số thư mục bị cắt bỏ : {summary['pruned_dirs']:,}")
print(f"Tổng số dòng đánh giá : {summary['total_rows']:,}")
print(f"Bản ghi hợp lệ (Sạch) : {summary['clean_rows']:,}")
print(f"Bản ghi bất thường (Rác) : {summary['trash_rows']:,}")

Tham số mở rộng

# Giới hạn theo phân vùng Hive và số luồng worker
summary = br.filter.filter_files_parallel(
    "data/lakehouse",
    rules=rules,
    partition_filter="year=2026/month=08",
    num_threads=8,
)

path_pattern chấp nhận một tệp đơn, một thư mục (duyệt đệ quy) hoặc glob pattern. Xem thêm kiến trúc bên trong tại Đường ống Lọc. Lưu ý lệnh này chỉ đếm số dòng clean/trash; dùng br.lake.process_and_write_lake để ghi kết quả ra đĩa.