รู้จัก PySpark RDD

Big Data Fundamentals with PySpark

Upendra Devisetty

Science Analyst, CyVerse

RDD คืออะไร?

  • RDD = Resilient Distributed Datasets

rdd

Big Data Fundamentals with PySpark

ส่วนประกอบของ RDD

  • Resilient Distributed Datasets

    • Resilient: ทนต่อความล้มเหลวได้

    • Distributed: กระจายทำงานบนหลายเครื่อง

    • Datasets: ชุดข้อมูลที่แบ่งพาร์ติชัน เช่น Arrays, Tables, Tuples เป็นต้น

Big Data Fundamentals with PySpark

การสร้าง RDD ทำได้อย่างไร?

  • Parallelize คอลเล็กชันที่มีอยู่

  • ชุดข้อมูลภายนอก:

    • ไฟล์ใน HDFS

    • ออบเจกต์ใน Amazon S3 bucket

    • บรรทัดในไฟล์ข้อความ

  • จาก RDD ที่มีอยู่แล้ว

Big Data Fundamentals with PySpark

Parallelized collection (การ parallelize)

  • ใช้ parallelize() สร้าง RDD จาก Python list
numRDD = sc.parallelize([1,2,3,4])
helloRDD = sc.parallelize("Hello world")
type(helloRDD)
<class 'pyspark.rdd.PipelinedRDD'>
Big Data Fundamentals with PySpark

จากชุดข้อมูลภายนอก

  • ใช้ textFile() สร้าง RDD จากชุดข้อมูลภายนอก
fileRDD = sc.textFile("README.md")
type(fileRDD)
<class 'pyspark.rdd.PipelinedRDD'>
Big Data Fundamentals with PySpark

การแบ่งพาร์ติชันใน PySpark

  • พาร์ติชันคือการแบ่งชุดข้อมูลแบบกระจายขนาดใหญ่ออกเป็นส่วนย่อยทางตรรกะ

  • เมธอด parallelize()

numRDD = sc.parallelize(range(10), minPartitions = 6)
  • เมธอด textFile()
fileRDD = sc.textFile("README.md", minPartitions = 6)
  • ตรวจสอบจำนวนพาร์ติชันใน RDD ได้ด้วยเมธอด getNumPartitions()
Big Data Fundamentals with PySpark

มาฝึกกันเถอะ!

Big Data Fundamentals with PySpark

Preparing Video For Download...