彈性分佈式數據集(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)


上一篇: Spark組件 下一篇: RDD操作