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
- spark-運算元-分割槽運算元Spark
- 運算元
- 使用運算元控制公式運算公式
- Laplace分佈運算元開發經驗分享
- Python 影像處理 OpenCV (12): Roberts 運算元、 Prewitt 運算元、 Sobel 運算元和 Laplacian 運算元邊緣檢測技術PythonOpenCV
- RDD運算元
- 運算元據庫
- python運算元據Python
- JavaScript運算元組JavaScript
- 運算元據庫表
- MySQL DML運算元據MySql
- jmeter運算元據庫JMeter
- DDL:運算元據庫
- onnx 運算元定義
- 什麼是運算元?
- Flink -- Operator操作運算元
- SIFT運算元總結
- Spark常用Transformations運算元(一)SparkORM
- Python運算元據庫(3)Python
- Oracle OCP(10):運算元據Oracle
- sobel運算元,matlab實現Matlab
- 3.0 常見operators運算元
- js 方法(運算元組為主JS
- 利用 Sequelize 來運算元據庫
- spark一些常用運算元Spark
- Ascend C 自定義PRelu運算元
- 三元運算+包機制
- 深入淺出PyTorch(運算元篇)PyTorch
- Spark RDD運算元(八)mapPartitions, mapPartitionsWithIndexSparkAPPIndex
- Ascend C運算元開發指南
- Flink - 運算元鏈合併方法
- python中Laplacian運算元如何使用Python
- java 運算元據庫備份Java
- Python學習:運算元據庫Python
- Python 影像處理 OpenCV (13): Scharr 運算元和 LOG 運算元邊緣檢測技術PythonOpenCV
- 影像濾波演算法整理--均值、中值、高斯、拉普拉斯運算元、梯度運算元:演算法梯度
- 7-2 一元多項式的乘法與加法運算 (20 分)