Tiếp theo bài Truy vấn cơ bản với Spark Dataframe, bài viết này tập trung sử dụng Spark-SQL để thực hiện các truy vấn SQL nâng cao hơn như truy vấn lồng và tổng hợp dữ liệu với Cube, Rollup. Lý do sử dụng SQL thay vì các hàm dựng sẵn của Dataframe là do tính dễ dùng. Ta đã quá quen thuộc với cú pháp và cách truy vấn sử dụng ngôn ngữ này.
Thông qua notebook, ta sẽ biết cách đặt truy vấn lồng tại các mệnh đề SELECT, FROM, WHERE như thế nào thông qua các ví dụ minh hoạ đơn giản. Sau đó, ta tiếp tục bước tổng hợp dữ liệu cho OLAP ra sao. Dữ liệu được phát sinh từ trang https://www.mockaroo.com/.
Snippet thường dùng
- để xem tổng thời gian thực thi lệnh.
%% time:
- Truyền tham số trường hợp muốn tạo module và import vào notebook khác.
sqlContext
- Xử lý giá trị bị thiếu tại thuộc tính cụ thể.
fillna({"attr": "val"})
- Bỏ chọn thuộc tính liên tiếp.
drop("attr_a", "attr_b)
- Testing trong quá trình viết hàm.
assert(val1 == val2)
Download:
- Jupyter notebook.
- Dataset: cars.csv, makers.csv