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