Bài tập này yêu cầu bạn cài đặt thuật toán K-means phân cụm dữ liệu StackOverflow dựa trên điểm số của các câu trả lời. Bạn sẽ làm việc với Spark RDD để xử lý dữ liệu lớn một cách phân tán.
1. Tổng quan các bước
Bạn cần thực hiện các bước sau:
- Đọc dữ liệu từ file CSV và chuyển thành dạng RDD.
- Ghép nối câu hỏi với các câu trả lời của nó.
- Tính điểm cao nhất của câu trả lời cho từng câu hỏi.
- Tạo vector đặc trưng để phân cụm.
- Cài đặt thuật toán K-means để nhóm các câu hỏi.
- Phân tích và xuất kết quả.
2. Hướng dẫn cài đặt từng phương thức
Dưới đây là hướng dẫn chi tiết từng phần bạn cần cài đặt:
2.1 Ghép nối câu hỏi với câu trả lời (groupedPostings)
- Dữ liệu đầu vào: RDD chứa danh sách các bài viết (
Posting).
- Mục tiêu: Tạo một RDD với mỗi câu hỏi đi kèm với danh sách các câu trả lời của nó.
Cách làm:
- Tách câu hỏi và câu trả lời thành hai RDD riêng biệt.
- Câu hỏi có
postTypeId == 1.
- Câu trả lời có
postTypeId == 2 và có parentId trùng với id của câu hỏi.
- Chuẩn bị dữ liệu để join:
- Biến đổi
questionsRDD thành (QID, Question).
- Biến đổi
answersRDD thành (QID, Answer).
- Dùng phép
join để ghép câu hỏi với danh sách các câu trả lời.