RDD(彈性分散式資料集)是Spark的核心抽象。它是一組元素,在叢集的節點之間進行分割區,以便我們可以對其執行各種並行操作。
有兩種方法可以用來建立RDD:
要建立並行化集合,請在驅動程式中的現有集合上呼叫SparkContext
的parallelize
方法。複製集合的每個元素以形成可以並行操作的分散式資料集。
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的支援。
SparkContext
的textFile
方法可用於建立RDD的文字檔案。此方法獲取檔案的URI(計算機上的本地路徑或hdfs://
)並讀取檔案的資料。
現在,可以通過資料集操作來運算元據,例如使用map
和reduceoperations
來新增所有行的大小,如下所示:data.map(s => s.length).reduce((a, b) => a + b)
。