Bắt đầu ngayBắt đầu miễn phí

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, yz, 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, yz, 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

Xem khóa học

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_name từ 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.
  • 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
  ___
Chỉnh sửa và Chạy Mã