Lặp và lọc
Là một tư vấn dữ liệu, bạn thường nhận dữ liệu ở mọi dạng và định dạng. Một khách hàng vừa chuyển cho bạn một tệp CSV dung lượng 40 GB chứa dữ liệu về các cơ sở giáo dục bậc cao trên toàn thế giới.
Các nhà phân tích junior không thể phân tích cú pháp dữ liệu đúng cách do thiếu bộ nhớ, và hiện không có ngân sách cho tài nguyên tính toán để xử lý toàn bộ tập dữ liệu. Phân tích hiện tại của bạn chỉ cần các cơ sở tại Úc. Đường dẫn tệp CSV đã được lưu trong biến filepath. Bạn được yêu cầu triển khai một bộ đọc dữ liệu hiệu quả cho tệp này. Các gói parallel, doParallel, foreach, và iterators đã được nạp sẵn cho bạn.
Bài tập này là một phần của khóa học
Lập trình song song trong R
Hướng dẫn bài tập
- Dùng một iterator để đọc từng dòng từ
filepath. - Kết hợp kết quả bằng một hàm phù hợp để tạo thành một data frame.
- Chỉ định toán tử chạy song song.
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.
cl <- makeCluster(4)
registerDoParallel(cl)
# Use an iterator to read lines
foreach(l = ___,
# Combine the lines as rows
___ = ___
# Use the parallel operator
) ___ {
line <- strsplit(l, ",")[[1]]
if (line[4] == "Australia") {
return(line)
}
}
stopCluster(cl)