1. 程式人生 > >Spark核心程式設計-RDD建立操作

Spark核心程式設計-RDD建立操作

目前有兩種型別的基礎RDD:一種是並行集合(Parallelized Collections),接收一個已經存在的scala集合,然後進行各種平行計算;另外一種是從外部儲存建立的RDD,外部儲存可以是文字檔案或者HDFS,也可以是Hadoop的介面API。

一、並行化集合建立操作

通過SparkContext的parallelize方法,在一個已經存在的scala集合上建立的Seq物件,集合的物件將會被複制,創建出一個可以被並行操作的分散式資料集(RDD)。在SparkContext類中實現了parallelize和makeRDD兩個並行化集合建立操作。

  • parallelize(seq:Seq[T], numSlices:Int = defaultParallelisem):RDD[T]
// 建立SparkConf物件
SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);
// 建立JavaSparkContext物件
JavaSparkContext sc = new JavaSparkContext(conf);
// 建立一個List集合
List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
// 並行化結合建立RDD,第一個引數為集合物件,第二個引數為分割槽數
JavaRDD<Integer> distData = sc.parallelize(data, 10);
  • makeRDD(seq:Seq[(T, Seq[String])]):RDD[T]
  • makeRDD(seq:Seq[T], numSlices:Int = defaultParallelisem):RDD[T]
// 用法和parallelize類似,不過該方法可以指定每一個分割槽的首選位置。(只有Scala Api提供了該方法)

// 指定1到10的首選位置為master節點,11到15的首選位置為slave1和slave2節點
var collect = Seq((1 to 10, Seq("master")), (11 to 15, Seq("slave1","slave2")))
var rdd = sc.makeRDD(collect)

// 檢視分割槽1的首選位置
rdd.preferredLocations(rdd.partitions(0))

二、外部儲存建立操作

Spark可以將Hadoop所支援的儲存資源轉化成RDD,如本地檔案,HDFS,Cassandra, HBase等,Spark支援文字檔案,Sequence Files以及Hadoop InputFormat格式。

  • textFile(path:String, minPartitions:Int = defaultMinPartitions):RDD[String]

使用textFile操作可以將本地檔案或HDFS檔案轉換成RDD,該操作支援整個檔案目錄讀取(如textFile("/my/directory"))。檔案可以是文字或者壓縮檔案。需要注意的地方有兩點:一所有的節點必須能夠訪問到該檔案,否則執行中會報“FileNotFoundException”;二預設情況下為每一個數據塊分配一個分割槽,使用者也可以顯示的指定更多的分割槽,但是不能少於HDFS檔案的資料塊數量。

// 從本地檔案data.txt建立RDD
JavaRDD<String> distFile = sc.textFile("data.txt");

注: textFile支援分割槽,支援模式匹配,例如把D:\wordcount\目錄下temp開頭的給轉換成RDD。

JavaRDD<String> distFile = sc.textFile("D:\\wordcount\\temp*");

 多個路徑可以使用逗號分隔,例如:

JavaRDD<String> distFile = sc.textFile("D:\\wordcount\\temp1,D:\\wordcount\\temp2",4);

相關推薦

Spark核心程式設計-RDD建立操作

目前有兩種型別的基礎RDD:一種是並行集合(Parallelized Collections),接收一個已經存在的scala集合,然後進行各種平行計算;另外一種是從外部儲存建立的RDD,外部儲存可以是文字檔案或者HDFS,也可以是Hadoop的介面API。 一、並行化集合建

Spark核心程式設計建立RDD(集合、本地檔案、HDFS檔案)

1,建立RDD 1.進行Spark核心程式設計時,首先要做的第一件事,就是建立一個初始的RDD。該RDD中,通常就代表和包含了Spark應用程式的輸入源資料。然後在建立了初始的RDD之後,才可以通過Spark Core提供的transformation運算元,

Spark核心程式設計建立RDD及transformation和action詳解和案例

建立RDD 進行Spark核心程式設計時,首先要做的第一件事,就是建立一個初始的RDD。該RDD中,通常就代表和包含了Spark應用程式的輸入源資料。然後在建立了初始的RDD之後,才可以通過Spark Core提供的transformation運算元,對該RD

spark核心程式設計spark基本工作原理與RDD

Spark2.0筆記 spark核心程式設計,spark基本工作原理與RDD 1. Spark基本工作原理 2. RDD以及其特點 3. 什麼是Spark開發 1.Spark基本工作原理 2. RDD以及其特點 3. 什麼是Spark開發 spark核心程

Spark RDD建立操作

從集合建立RDD parallelize def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T] 從一個Seq集合建立RDD

Spark核心程式設計RDD持久化詳解

1.RDD持久化原理 1.Spark非常重要的一個功能特性就是可以將RDD持久化在記憶體中。當對RDD執行持久化操作時,每個節點都會將自己操作的RDD的partition持久化到記憶體中,並且在之後對該RDD的反覆使用中,直接使用記憶體快取的partition

Spark核心程式設計RDD持久化詳解

RDD持久化原理 Spark非常重要的一個功能特性就是可以將RDD持久化在記憶體中。當對RDD執行持久化操作時,每個節點都會將自己操作的RDD的partition持久化到記憶體中,並且在之後對該RDD的反覆使用中,直接使用記憶體快取的partition。這樣的

Spark2.x學習筆記:3、 Spark核心概念RDD

Spark學習筆記:3、Spark核心概念RDD 3.1 RDD概念 彈性分散式資料集(Resilient Distributed Datasets,RDD) ,可以分三個層次來理解: 資料集:故名思議,RDD 是資料集合的抽象,是複雜物理介質上存在資料的一種邏輯檢視。

Spark運算元:RDD建立的方式

建立RDD大體分為兩類方式:(1)通過集合建立;(2)通過外部儲存建立。 1、通過集合方式 (1)parallelize:def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: C

Spark 核心程式設計(10)-Top N

1 TopN 1.1 對檔案內數字,取最大的前 3 個 Java 版本 package topn; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairR

Spark七 Pair RDD轉化操作

Pair RDD: 提供並行操作各個鍵和跨節點重新進行資料分組的操作介面建立Pair RDD1) 把普通的RDD轉化為Pair RDD使用map方法將lines劃分為以首個單詞為鍵,行內容為值的Pair RDDval pairs = lines.map(x => (x.

Spark 核心概念RDD

文章正文 RDD全稱叫做彈性分散式資料集(Resilient Distributed Datasets),它是一種分散式的記憶體抽象,表示一個只讀的記錄分割槽的集合,它只能通過其他RDD轉換而建立,為此,RDD支援豐富的轉換操作(如map, join, filter, groupBy等),通過這種轉換操作,

Windows核心程式設計--程序建立與程序退出

VOID ProcessInherit( VOID ) {STARTUPINFO si = { sizeof(si) };SECURITY_ATTRIBUTES saProcess, saThread;PROCESS_INFORMATION piThreadB, piThreadC;TCHAR szPath

Spark核心概念RDD

RDD全稱叫做彈性分散式資料集(Resilient Distributed Datasets),它是一種分散式的記憶體抽象,表示一個只讀的記錄分割槽的集合,它只能通過其他RDD轉換而建立,為此,RDD支援豐富的轉換操作(如map, join, filter, groupBy等

Spark核心RDD的運算元

RDD的運算元 一般來說,RDD的整個計算過程都是發生在Worker節點中的Executor中的。RDD可以支援三種操作型別:Transformation、Action以及Persist和CheckPoint為代表的控制型別操作。 RDD一般是從外部資料來源

Spark程式設計指南之一:transformation和action等RDD基本操作

文章目錄 基本概念 開發環境 程式設計實戰 初始化SparkContext RDD的生成 RDD基本操作 Key-Value Pairs Transformations f

Spark核心類:彈性分散式資料集RDD及其轉換和操作pyspark.RDD

彈性分散式資料集RDD(Resilient Distributed Dataset)術語定義l彈性分散式資料集(RDD): Resillient Distributed Dataset,Spark的基本計算單元,可以通過一系列運算元進行操作(主要有Transformation

Spark核心資料模型RDD操作

如今spark特別火,相信作為程式設計師的你也難以抵擋spark的魅力,俗話說萬事開頭難,學習spark需要一些準備工作,首先就是要搭建學習測試環境,spark非常人性化,一個簡單的測試環境,只需要下載安裝包,解壓之後,執行spark_shell指令碼就可以學習測試了,sp

[1.2]Spark core程式設計(一)之RDD總論與建立RDD的三種方式

參考 場景 RDD的理解 一、RDD是基於工作集的應用抽象;是分散式、函數語言程式設計的抽象。 MapReduce:基於資料集的處理。兩者的共同特徵:位置感知(具體資料在哪裡)、容錯、負載均衡。 基於資料集的處理:從物理儲存裝置上載入資料,然

spark 教程一 RDD核心概念

coalesce reg ntb red gre 保存 所有 lec 會有 1.RDD 的介紹   RDD 是spark的核心概念,可以將RDD是做數據庫中的一張表,RDD可以保存任何類型的數據,可以用API來處理RDD及RDD中的數據,類似於Mapreduce, RDD