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

Lọc các hàng

Bên cạnh việc chọn cột, một cách khác để trích xuất những phần quan trọng của dữ liệu là lọc các hàng. Việc này được thực hiện bằng hàm filter(). Để dùng filter(), bạn truyền vào một tibble và một số điều kiện logic. Ví dụ, để chỉ trả về các hàng mà giá trị cột x lớn hơn 0 giá trị của y bằng với z, bạn có thể viết như sau.

a_tibble %>%
  filter(x > 0, y == z)

Trước khi làm bài, lưu ý hai cảnh báo. Thứ nhất, đừng nhầm hàm filter() của dplyr với hàm filter() của gói stats. Thứ hai, sparklyr chuyển đổi mã dplyr của bạn thành mã SQL trước khi gửi đến Spark. Điều đó có nghĩa là hiện chỉ hỗ trợ một số thao tác lọc nhất định. Ví dụ, bạn không thể lọc các hàng kiểu ký tự bằng biểu thức chính quy với mã như

a_tibble %>%
  filter(grepl("a regex", x))

Trang trợ giúp của translate_sql() mô tả các chức năng hiện có. Bạn có thể dùng toán tử so sánh như >, !=, và %in%; toán tử số học như +, ^, và %%; và toán tử logic như &, |!. Nhiều hàm toán học như log(), abs(), round(), và sin() cũng được hỗ trợ.

Như trước đây, hiện chưa hỗ trợ lập chỉ mục bằng dấu ngoặc vuông.

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 dưới tên spark_conn. Một tibble gắn với track metadata được lưu trong Spark cũng đã được định nghĩa sẵn là track_metadata_tbl.

  • Như ở bài trước, dùng select() để chọn các cột artist_name, release, title, và year.
  • Pipe kết quả này vào filter() để lấy các bản nhạc trong thập niên 1960.

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
glimpse(track_metadata_tbl)

# Manipulate the track metadata
track_metadata_tbl %>%
  # Select columns
  ___ %>%
  # Filter rows
  ___
Chỉnh sửa và Chạy Mã