ลบ stop words และลดขนาดชุดข้อมูล
ในแบบฝึกหัดนี้ คุณจะลบ stop words ออกจากข้อมูล Stop words คือคำทั่วไปที่มักไม่มีความหมายสำคัญ เช่น "I", "the", "a" เป็นต้น ปกติแล้วสามารถสร้างรายการ stop words ขึ้นมาเองได้ แต่ในแบบฝึกหัดนี้ จะใช้รายการ stop words จาก stop_words ที่เตรียมไว้ให้ในสภาพแวดล้อมการทำงานแล้ว
หลังจากลบ stop words แล้ว ให้สร้าง pair RDD โดยแต่ละ element เป็น pair tuple (k, v) ที่ k คือ key และ v คือ value ในตัวอย่างนี้ pair RDD ประกอบด้วย (w, 1) โดย w แทนแต่ละคำใน RDD และ 1 คือตัวเลข จากนั้นรวม value ที่มี key เดียวกันจาก pair RDD เพื่อนับจำนวนครั้งที่แต่ละคำปรากฏ
ในสภาพแวดล้อมการทำงาน มี SparkContext sc และ splitRDD พร้อมใช้งานอยู่แล้ว รวมถึงตัวแปร stop_words ด้วย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Big Data Fundamentals with PySpark
คำแนะนำการฝึกหัด
- กรอง
splitRDDโดยลบคำที่อยู่ในตัวแปรstop_wordsออก - สร้าง pair RDD tuple ที่ประกอบด้วยคำ (โดยใช้ตัววนซ้ำ
w) และตัวเลข1จากแต่ละ element ในsplitRDD - นับจำนวนครั้งที่แต่ละคำปรากฏ (ความถี่ของคำ) จาก pair RDD โดยใช้ transformation ที่ทำงานกับคู่ key, value (k,v) ลองคิดให้รอบคอบว่าควรใช้ฟังก์ชันใด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Filter splitRDD to remove stop words from the stop_words curated list
splitRDD_no_stop = splitRDD.____(lambda x: x.lower() not in ____)
# Create a tuple of the word (w) and 1
splitRDD_no_stop_words = splitRDD_no_stop.map(lambda w: (____, ____))
# Count of the number of occurences of each word
resultRDD = splitRDD_no_stop_words.____(lambda x, y: x + y)