- vừa được xem lúc

Rust & Jupyter Notebook - Phân tích dữ liệu với Polars (Phần 04)

0 0 3

Người đăng: RustDEV VietNam

Theo Viblo Asia

pola-rs: Lazy vs. Eager

polars rất mạnh và sử dụng tài nguyên hiệu quả một phần nhờ vào cơ chế Lazy. Tên gọi có vẻ rất "lười" nhưng có lẽ nhờ cái sự "lười" đó nên mới tối ưu. Khác với chế độ hoạt động mặc định là Eager (nôm na là "háo hức" xử lý lệnh ngay mà chưa cần suy nghĩ nhiều), khi chỉ định chuỗi lệnh chạy trong chế độ Lazy, các API hay phương thức của polars sẽ chưa được thực thi ngay khi được gọi đến. Thay vì thực thi ngay lập tức, toàn bộ các lệnh/phương thức xử lý trên dữ liệu sẽ được sắp xếp, tổ chức trong một phương án thi hành tối ưu hay một "logical query plan". polars sẽ đảm bảo có phương án thi hành toàn bộ chuỗi lệnh xử lý đó một cách tối ưu nhất. Toàn bộ phương án thi hành đã được tối ưu sau đó sẽ được thực thi khi thực sự cần đến hay nói chính xác hơn là thực sự cần dùng dữ liệu đó mà thông thường sẽ được kích hoạt bởi lệnh .collect().

Như vậy, với cách thi hành này, tất cả các chuỗi lệnh xử lý dữ liệu sẽ luôn được tối ưu trước khi thi hành và nó rất phù hợp với các mã viết cho Production hay xử lý những khối dữ liệu lớn. Tất nhiên, vì các mã lệnh đã được tối ưu nên sẽ khó dò lỗi và gỡ rối chương trình khi cần. Do vậy, thường thì chúng ta sẽ dùng chế độ Eager khi thiết kế chương trình, thiết kế mô hình xử lý dữ liệu và chuyển sang Lazy khi viết mã chính thức.

Việc sử dụng chế độ Lazy cho các mã lệnh cũng khá đơn giản, chúng ta chỉ cần: (1) bật "feature" lazy khi khai báo sử dụng polars; VÀ (2) gọi phương thức .lazy() đầu tiên trong các chuỗi lệnh xử lý dữ liệu. Để hiểu rõ hơn về sự khác nhau giữa Eager và Lazy cũng như cách sử dụng, hãy xem video "#0038 - Phân tích dữ liệu với polars (Phần 04)” trên kênh Youtube RustDEV Vietnam!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Chuyện cái comment

Chuyện cái comment. Chuyện rằng, có một ông bạn nọ có cái blog ở trên mạng, cũng có dăm.

0 0 44

- vừa được xem lúc

Đừng đánh nhau với borrow checker

Đừng đánh nhau với borrow checker. TL;DR: Đừng bao giờ đánh nhau với borrow checker, nó được sinh ra để bạn phải phục tùng nó .

0 0 40

- vừa được xem lúc

Chuyện biểu diễn ma trận trên máy tính

Chuyện biểu diễn ma trận trên máy tính. Cách đây mấy hôm mình có share cái screenshot trên Facebook, khoe linh tinh vụ mình đang viết lại cái CHIP-8 emulator bằng Rust.

0 0 56

- vừa được xem lúc

Rust và Lập trình Web

Rust và Lập trình Web. Bài viết được dịch lại từ bản gốc "Rust for the Web" đăng tại phiên bản blog tiếng Anh của mình.

0 0 48

- vừa được xem lúc

Viết ứng dụng đọc tin HackerNews bằng Rust

Viết ứng dụng đọc tin HackerNews bằng Rust. Dạo này mình toàn viết bài linh tinh, lâu rồi chưa thấy viết bài kĩ thuật nào mới nên hôm nay mình viết trở lại, mất công các bạn lại bảo mình không biết co

0 0 39

- vừa được xem lúc

Cài đặt Rust trên Arch Linux

Cài đặt Rust trên Arch Linux. Việc cài đặt Rust trên môi trường Arch Linux khá là đơn giản.

0 0 54