Big Data Fundamentals with PySpark
Upendra Devisetty
Science Analyst, CyVerse
action reduce(func) ใช้สำหรับรวมค่าองค์ประกอบของ RDD ทั่วไป
ฟังก์ชันต้องมีสมบัติ commutative (สลับลำดับ operand แล้วผลลัพธ์เท่าเดิม) และ associative
ตัวอย่างการใช้ action reduce() ใน PySpark
x = [1,3,4,6]
RDD = sc.parallelize(x)
RDD.reduce(lambda x, y : x + y)
14
saveAsTextFile() บันทึก RDD เป็นไฟล์ข้อความในไดเรกทอรี โดยแต่ละ partition จะเป็นไฟล์แยกRDD.saveAsTextFile("tempFile")
coalesce() เพื่อบันทึก RDD เป็นไฟล์ข้อความไฟล์เดียวRDD.coalesce(1).saveAsTextFile("tempFile")
RDD action ที่ใช้ได้กับ pair RDD ใน PySpark
pair RDD action ใช้ประโยชน์จากข้อมูลแบบ key-value
ตัวอย่าง action ของ pair RDD ได้แก่
countByKey()
collectAsMap()
countByKey() ใช้ได้เฉพาะกับประเภท (K, V)
action countByKey() นับจำนวนองค์ประกอบของแต่ละ key
ตัวอย่างการใช้ countByKey() กับลิสต์อย่างง่าย
rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
for kee, val in rdd.countByKey().items():
print(kee, val)
('a', 2)
('b', 1)
collectAsMap() คืนค่าคู่ key-value ใน RDD เป็น dictionary
ตัวอย่างการใช้ collectAsMap() กับ tuple อย่างง่าย
sc.parallelize([(1, 2), (3, 4)]).collectAsMap()
{1: 2, 3: 4}
Big Data Fundamentals with PySpark