PySpark RDD 入門

使用 PySpark 的 Big Data 基礎

Upendra Devisetty

Science Analyst, CyVerse

什麼是 RDD?

  • RDD = Resilient Distributed Datasets

rdd

使用 PySpark 的 Big Data 基礎

拆解 RDD

  • Resilient Distributed Datasets

    • Resilient:能承受失敗

    • Distributed:跨多部機器

    • Datasets:分割資料的集合,例如陣列、資料表、tuples 等

使用 PySpark 的 Big Data 基礎

建立 RDD:如何做?

  • 將現有物件集合平行化

  • 外部資料集:

    • HDFS 中的檔案

    • Amazon S3 bucket 中的物件

    • 文字檔中的每一行

  • 從現有 RDD 建立

使用 PySpark 的 Big Data 基礎

平行化集合(parallelizing)

  • 使用 parallelize() 從 Python list 建立 RDD
numRDD = sc.parallelize([1,2,3,4])
helloRDD = sc.parallelize("Hello world")
type(helloRDD)
<class 'pyspark.rdd.PipelinedRDD'>
使用 PySpark 的 Big Data 基礎

來自外部資料集

  • 使用 textFile() 從外部資料集建立 RDD
fileRDD = sc.textFile("README.md")
type(fileRDD)
<class 'pyspark.rdd.PipelinedRDD'>
使用 PySpark 的 Big Data 基礎

理解 PySpark 的分割區

  • 分割區是大型分散式資料集的邏輯切分

  • parallelize() 方法

numRDD = sc.parallelize(range(10), minPartitions = 6)
  • textFile() 方法
fileRDD = sc.textFile("README.md", minPartitions = 6)
  • 你可以用 getNumPartitions() 取得 RDD 的分割區數量
使用 PySpark 的 Big Data 基礎

一起來練習吧!

使用 PySpark 的 Big Data 基礎

Preparing Video For Download...