ReduceByKey และ Collect
หนึ่งใน transformation ของ pair RDD ที่ได้รับความนิยมมากที่สุดคือ reduceByKey() ซึ่งทำงานกับคู่ข้อมูล key, value (k,v) โดยจะรวมค่าที่มี key เดียวกันเข้าด้วยกัน ในแบบฝึกหัดนี้ จะสร้าง pair RDD จากรายการ tuple จากนั้นรวมค่าที่มี key เดียวกัน แล้วพิมพ์ผลลัพธ์ออกมา
อย่าลืมว่า SparkContext sc พร้อมใช้งานอยู่แล้วใน workspace ของคุณ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Big Data Fundamentals with PySpark
คำแนะนำการฝึกหัด
- สร้าง pair RDD ชื่อ
Rddจาก tuple(1,2),(3,4),(3,6),(4,5) - แปลง
Rddด้วยreduceByKey()ให้เป็น pair RDD ชื่อRdd_Reducedโดยบวกค่าที่มี key เดียวกันเข้าด้วยกัน - Collect เนื้อหาของ pair RDD
Rdd_Reducedแล้ววนซ้ำเพื่อพิมพ์ผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create PairRDD Rdd with key value pairs
Rdd = sc.parallelize([____])
# Apply reduceByKey() operation on Rdd
Rdd_Reduced = Rdd.reduceByKey(lambda x, y: ____)
# Iterate over the result and print the output
for num in Rdd_Reduced.____:
print("Key {} has {} Counts".format(____, num[1]))