Common people
Hàm distinct() cho bạn các giá trị duy nhất. Cũng rất hữu ích khi biết có bao nhiêu mỗi giá trị. Hàm base R cho việc này là table(); hàm này không được hỗ trợ trong sparklyr vì không tuân theo triết lý tidyverse là giữ mọi thứ trong tibble. Thay vào đó, bạn cần dùng count(). Để dùng, truyền tên cột ở dạng không đặt trong dấu ngoặc kép. Ví dụ, để tìm số lượng các tổ hợp khác nhau của các cột x, y và z, bạn gõ như sau.
a_tibble %>%
count(x, y, z)
Kết quả giống như
a_tibble %>%
distinct(x, y, z)
… ngoại trừ việc bạn có thêm một cột n chứa số đếm.
Một cách dùng rất hay của count() là lấy các giá trị phổ biến nhất. Để làm điều này, bạn gọi count() với đối số sort = TRUE để sắp xếp các hàng theo giá trị giảm dần của cột n, rồi dùng slice_max() để giới hạn kết quả ở một số lượng giá trị đứng đầu tùy ý. (slice_max() tương tự như head() của base R, nhưng hoạt động với các tập dữ liệu từ xa như trong Spark.) Ví dụ, để lấy 20 tổ hợp phổ biến nhất của các cột x, y và z, dùng như sau.
a_tibble %>%
count(x, y, z, sort = TRUE) %>%
slice_max(20)
Bài tập này là một phần của khóa học
Nhập môn Spark với sparklyr trong R
Hướng dẫn bài tập
Kết nối Spark đã được tạo sẵn là spark_conn. Một tibble gắn với siêu dữ liệu bản nhạc được lưu trong Spark đã được định nghĩa trước là track_metadata_tbl.
- Đếm các giá trị trong cột
artist_nametừtrack_metadata_tbl.- Truyền
sort = TRUEđể sắp xếp các hàng theo mức độ phổ biến giảm dần.
- Truyền
- Giới hạn kết quả còn top 20 bằng
slice_max().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Count the artist_name values
___ %>%
# Restrict to top 20
___