Giới thiệu về RDD trong PySpark

Nền tảng Big Data với PySpark

Upendra Devisetty

Science Analyst, CyVerse

RDD là gì?

  • RDD = Resilient Distributed Datasets

rdd

Nền tảng Big Data với PySpark

Phân tích thành phần của RDD

  • Resilient Distributed Datasets

    • Resilient: Khả năng chịu lỗi

    • Distributed: Chạy trên nhiều máy

    • Datasets: Tập dữ liệu được phân mảnh, ví dụ: mảng, bảng, bộ 3, v.v.

Nền tảng Big Data với PySpark

Tạo RDD. Làm thế nào?

  • Song song hóa một tập hợp đối tượng có sẵn

  • Nguồn dữ liệu ngoài:

    • Tệp trong HDFS

    • Đối tượng trong Amazon S3 bucket

    • Các dòng trong tệp văn bản

  • Từ các RDD hiện có

Nền tảng Big Data với PySpark

Bộ sưu tập song song (parallelizing)

  • parallelize() để tạo RDD từ danh sách Python
numRDD = sc.parallelize([1,2,3,4])
helloRDD = sc.parallelize("Hello world")
type(helloRDD)
<class 'pyspark.rdd.PipelinedRDD'>
Nền tảng Big Data với PySpark

Từ nguồn dữ liệu ngoài

  • textFile() để tạo RDD từ nguồn dữ liệu ngoài
fileRDD = sc.textFile("README.md")
type(fileRDD)
<class 'pyspark.rdd.PipelinedRDD'>
Nền tảng Big Data với PySpark

Hiểu về partitioning trong PySpark

  • Partition là phần chia logic của một tập dữ liệu phân tán lớn

  • Phương thức parallelize()

numRDD = sc.parallelize(range(10), minPartitions = 6)
  • Phương thức textFile()
fileRDD = sc.textFile("README.md", minPartitions = 6)
  • Số partition của một RDD có thể lấy bằng phương thức getNumPartitions()
Nền tảng Big Data với PySpark

Ayo berlatih!

Nền tảng Big Data với PySpark

Preparing Video For Download...