การโหลดและแปลงข้อมูล 5000 จุด
การจัดกลุ่ม (Clustering) คืองานการเรียนรู้แบบไม่มีผู้สอน (unsupervised learning) ที่จัดวัตถุเข้าเป็นกลุ่มตามความคล้ายคลึงกัน ต่างจากงานแบบมีผู้สอน (supervised) ที่ข้อมูลจะมีป้ายกำกับ การจัดกลุ่มช่วยให้เราทำความเข้าใจข้อมูลที่ไม่มีป้ายกำกับได้ PySpark MLlib มีอัลกอริทึม K-means ที่นิยมใช้กันอย่างแพร่หลายสำหรับงานนี้ ในแบบฝึกหัด 3 ส่วนนี้ จะได้ค้นหาว่ามีกี่กลุ่มในชุดข้อมูลที่มี 5000 แถวและ 2 คอลัมน์ โดยจะเริ่มจากโหลดข้อมูลลงใน RDD แปลง RDD ตามตัวคั่น รันโมเดล KMeans ประเมินผลโมเดล และสุดท้ายแสดงภาพกลุ่มข้อมูล
ในส่วนแรก จะโหลดข้อมูลลงใน RDD แปลง RDD ตามตัวคั่น และแปลงข้อมูลประเภท string ให้เป็นจำนวนเต็ม
โปรดทราบว่า SparkContext sc พร้อมใช้งานใน workspace แล้ว รวมถึงตัวแปร file_path (ซึ่งเป็น path ไปยังไฟล์ 5000_points.txt) ก็พร้อมใช้งานเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Big Data Fundamentals with PySpark
คำแนะนำการฝึกหัด
- โหลดชุดข้อมูล
5000_pointsลงใน RDD ชื่อclusterRDD - แปลง
clusterRDDโดยแยกแต่ละบรรทัดด้วยแท็บ ("\t") - แปลง RDD ที่แยกแล้วให้สร้างลิสต์ของจำนวนเต็มสำหรับทั้งสองคอลัมน์
- ตรวจสอบว่าชุดข้อมูลมีครบ 5000 แถว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Load the dataset into an RDD
clusterRDD = sc.____(file_path)
# Split the RDD based on tab
rdd_split = clusterRDD.____(lambda x: ____.split(____))
# Transform the split RDD by creating a list of integers
rdd_split_int = rdd_split.____(lambda x: [int(____), int(x[1])])
# Count the number of rows in RDD
print("There are {} rows in the rdd_split_int dataset".format(____.____()))