Thu nhỏ dữ liệu bằng cách lấy mẫu
Khi làm việc với một bộ dữ liệu lớn, bạn thường không cần phải xử lý toàn bộ mọi lúc. Đặc biệt ở giai đoạn đầu dự án, khi bạn đang thử nghiệm mạnh tay với các ý tưởng, bạn có thể lặp nhanh hơn bằng cách làm việc trên một tập con nhỏ hơn của dữ liệu. sdf_sample() là cách tiện lợi để làm điều đó. Hàm nhận vào một tibble và tỉ lệ số dòng cần trả về. Trong trường hợp này, bạn muốn lấy mẫu không hoàn lại. Để lấy mẫu ngẫu nhiên một phần mười dữ liệu của bạn, bạn có thể dùng đoạn mã sau.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Vì kết quả lấy mẫu là ngẫu nhiên, và bạn có thể muốn tái sử dụng tập dữ liệu đã được thu nhỏ, nên thường dùng compute() để lưu kết quả thành một data frame của Spark khác.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Để kết quả có thể tái lập, bạn cũng có thể đặt seed cho bộ sinh số ngẫu nhiên thông qua đối số seed. Làm vậy sẽ giúp bạn nhận cùng một tập dữ liệu ngẫu nhiên mỗi lần chạy mã. Con số dùng cho seed là tùy chọn; chỉ cần chọn một số nguyên dương bạn thích.
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 cho bạn là spark_conn. Một tibble gắn với track metadata được lưu trong Spark đã được định nghĩa trước là track_metadata_tbl.
- Dùng
sdf_sample()để lấy mẫu 1% track metadata theo kiểu không hoàn lại (without replacement).- Truyền
20000229vào đối sốseedđể đặt seed ngẫu nhiên.
- Truyền
- Tính kết quả và lưu vào một bảng tên
"sample_track_metadata".
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 %>%
# Sample the data without replacement
___ %>%
# Compute the result
___