Spark----RDD運算元分類 DAG
RDD的運算元的分類
Transformation: 即轉換運算元,呼叫轉換運算元會生成一個新的RDD, Transformation是 Lazy 的,不會觸發job執行
Action: 行動運算元,呼叫行動運算元會觸發job執行, 本質上是呼叫了sc.runJob方法, 該方法從最後一個RDD,根據
其依賴關係,從後往前,劃分Stage,生成一個TaskSet
1.建立RDD的方法
(1)通過並行化方式,將Dirver端的集合轉成RDD ,可以指定分割槽的數量
val rdd: RDD[Int] = sc.parallelize(arr)
rdd.partitions.length //檢視分割槽數量
(2)從HDFS指定目錄建立RDD ,也可以指定分割槽的數量
val lines: RDD[String] = sc.textFile("hdfs://linux01:8020/log")
rdd.partitions.length //檢視分割槽數量
(2.1)從hdfs中讀取資料分割槽數量 : 預設情況下 目錄檔案下所有檔案的 totalSize(檔案總大小)/NumSplits (切片數量) 得到 goalSize()
使用 檔案大小/goalSize 結果大於1.1 就分為多個切片.
如果想要幾個block塊(檔案)就有幾個分割槽, 在建立rdd時指定計算goalSize的除數為1就可以了
val rdd1 = sc.textFile("hdfs://linux01:8020/wc",1)
DAG 有向無環圖
srage 任務執行階段
一個Stage對應一個TaskSet
一個TaskSet中的Task的數量取決於Stage中最後一個RDD分割槽的數量
dependency
依賴關係,指的是父RDD和子RDD之間的依賴關係
窄依賴:沒有shfuffle產生,多個運算元會被合併到一個Task中,即在一個pipeline中
寬依賴:有shuffle產生,是劃分Stage的依據
相關文章
- 【Spark篇】---SparkStreaming中運算元中OutPutOperator類運算元Spark
- ecshop運算元據庫類
- Java中 使用 Math 類運算元據Java
- spark-運算元-分割槽運算元Spark
- Java學習--使用 Math 類運算元據Java
- 使用運算元控制公式運算公式
- 使用WordPress中的wpdb類運算元據庫
- HibernateUtil類(運算元據源 session 的管理)Session
- Laplace分佈運算元開發經驗分享
- 【OpenCV】影像變換(二)邊緣檢測:梯度運算元、Sobel運算元和Laplace運算元OpenCV梯度
- Python 影像處理 OpenCV (12): Roberts 運算元、 Prewitt 運算元、 Sobel 運算元和 Laplacian 運算元邊緣檢測技術PythonOpenCV
- 運算元據庫
- Spark運算元篇 --Spark運算元之aggregateByKey詳解Spark
- Spark運算元篇 --Spark運算元之combineByKey詳解Spark
- 運算元據庫表
- SIFT運算元總結
- java反射——運算元組Java反射
- yii運算元據庫
- Mysqli運算元據庫MySql
- onnx 運算元定義
- MySQL DML運算元據MySql
- DDL:運算元據庫
- python運算元據Python
- jmeter運算元據庫JMeter
- Spark常用Transformations運算元(一)SparkORM
- Oracle OCP(10):運算元據Oracle
- Flink -- Operator操作運算元
- Spark常用Transformations運算元(二)SparkORM
- PHP mysqli 運算元據庫PHPMySql
- 三元運算+包機制
- 3.0 常見operators運算元
- Java的&運算子作用於boolean運算元JavaBoolean
- YTU-OJ-分數類的四則運算【C++】C++
- 利用 Sequelize 來運算元據庫
- js 方法(運算元組為主JS
- java 運算元據庫備份Java
- Python運算元據庫(3)Python
- spark一些常用運算元Spark