彈性分散式資料集(RDD)簡介


RDD(彈性分散式資料集)是Spark的核心抽象。它是一組元素,在叢集的節點之間進行分割區,以便我們可以對其執行各種並行操作。

有兩種方法可以用來建立RDD:

  • 並行化驅動程式中的現有資料
  • 參照外部儲存系統中的資料集,例如:共用檔案系統,HDFS,HBase或提供Hadoop InputFormat的資料源。

並行化集合

要建立並行化集合,請在驅動程式中的現有集合上呼叫SparkContextparallelize方法。複製集合的每個元素以形成可以並行操作的分散式資料集。

val info = Array(1, 2, 3, 4)  
val distinfo = sc.parallelize(info)

現在,可以操作分散式資料集(distinguishedfo),例如:distinfo.reduce((a, b) => a + b)

外部資料集

在Spark中,可以從Hadoop支援的任何型別的儲存源(如HDFS,Cassandra,HBase甚至本地檔案系統)建立分散式資料集。Spark提供對文字檔案,SequenceFiles和其他型別的Hadoop InputFormat的支援。

SparkContexttextFile方法可用於建立RDD的文字檔案。此方法獲取檔案的URI(計算機上的本地路徑或hdfs://)並讀取檔案的資料。

外部數據集

現在,可以通過資料集操作來運算元據,例如使用mapreduceoperations來新增所有行的大小,如下所示:data.map(s => s.length).reduce((a, b) => a + b)