1. 程式人生 > >RDD的建立方式及注意事項

RDD的建立方式及注意事項

1 RDD的建立方式

1.1 SparkContext’s parallelize(並行化集合)

並行化集合通過呼叫SparkContext的並行化方法在驅動程式(Scala Seq)中的現有集合上建立的。複製集合的元素以形成可並行操作的分散式資料集。

val data = Array(1, 2, 3, 4, 5)
val distData = sc.parallelize(data)

並行集合的一個重要引數:可以設定分割槽的數量。 Spark將為叢集的每個分割槽執行一個任務。通常,對於叢集中的每個CPU,都需要2-4個分割槽。Spark會根據您的群集自動設定分割槽的數量。但是,您也可以手動設定它作為第二個引數並行化(sc.parallelize(data, 10))。

1.2 SparkContext’s textFile(外部資料集)

Spark可以從Hadoop支援的任何儲存源建立分散式資料集,包括本地檔案系統、HDFS、Cassandra、HBase、Amazon S3等。SCAP支援 text files, SequenceFiles,和任何其他Hadoop輸入格式。

本地檔案
val distFile = sc.textFile("file:///home/hadoop/data/input.txt") 
hdfs檔案
val distFile = sc.textFile("hdfs://192.168.137.120/input.txt") 

2 注意事項

  1. 如果使用本地檔案,必須在所有工作節點上存在該檔案,訪問時能夠訪問到。
  2. Spark檔案的輸入方法,包括文字檔案,目錄、壓縮檔案和萬用字元。例如textFile(“/my/directory”);
    textFile(“/my/directory/*.txt”);
    textFile(“/my/directory/*.gz”)。
  3. textFile 方法還採用一個可選的第二個引數來控制檔案分割槽的數量。預設情況下,Spark為檔案的每個塊建立一個分割槽(在HDFS中預設為128MB),但也可以通過傳遞較大的值來請求更高數量的分割槽。請注意,分割槽不能比塊少。