Spark的性能調優——RDD

前言

RDD 是 Spark 對于分布式數據集的抽象,每一個 RDD 都代表著一種分布式數據形態。比如 lineRDD,它表示數據在集群中以行(Line)的形式存在;而 wordRDD 則意味著數據的形態是單詞,分布在計算集群中。?

參數

參數是函數、或者返回值是函數的函數,我們把這類函數統稱為“高階函數”(Higher-order Functions)。換句話說,這 4 個算子,都是高階函數。?

?

import org.apache.spark.rdd.RDD
val rootPath: String = _
val file: String = s"${rootPath}/wikiOfSpark.txt"
// 讀取文件內容
val lineRDD: RDD[String] = spark.sparkContext.textFile(file)
// 以行為單位做分詞
val wordRDD: RDD[String] = lineRDD.flatMap(line => line.split(" "))
val cleanWordRDD: RDD[String] = wordRDD.filter(word => !word.equals(""))
// 把RDD元素轉換為(Key,Value)的形式
val kvRDD: RDD[(String, Int)] = cleanWordRDD.map(word => (word, 1))
// 按照單詞做分組計數
val wordCounts: RDD[(String, Int)] = kvRDD.reduceByKey((x, y) => x + y)
// 打印詞頻最高的5個詞匯
wordCounts.map{case (k, v) => (v, k)}.sortByKey(false).take(5)

?

在 RDD 的編程模型中,一共有兩種算子,Transformations 類算子和 Actions 類算子。開發者需要使用 Transformations 類算子,定義并描述數據形態的轉換過程,然后調用 Actions 類算子,將計算結果收集起來、或是物化到磁盤。

換句話說,開發者調用的各類 Transformations 算子,并不立即執行計算,當且僅當開發者調用 Actions 算子時,之前調用的轉換算子才會付諸執行。在業內,這樣的計算模式有個專門的術語,叫作“延遲計算”(Lazy Evaluation)。延遲計算很好地解釋了本講開頭的問題:為什么 Word Count 在執行的過程中,只有最后一行代碼會花費很長時間,而前面的代碼都是瞬間執行完畢的呢?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22133.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22133.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22133.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

職稱繼續教育--專業課2

單選題(共10題,每題3分) 1、根據本講,“水十條”總體框架包括()個層次。 C、5 2、根據“水十條”目標指標層,到2020年,地級及以上城市建成區的黑臭水體控制(&#xff09…

數據挖掘綜合案例-家用熱水器用戶行為分析與事件識別

文章目錄 1. 背景與挖掘目標2. 分析方法與過程3. 數據分析3.1 數據探索分析3. 2 數據預處理1. 屬性約束2. 劃分用水事件3. 確定單次用水事件時長閾值4. 屬性構造5.篩選候選洗浴事件 3.3 模型構建3.4 模型檢驗 4. 思考總結 1. 背景與挖掘目標 隨著國內大家電品牌的進入和國外品…

了解CAN功能

了解CAN功能,學習CAN功能,理解CAN和串口的區別,以及它和RS485的相似之處。 1、“多主機”特性 在CAN網絡通訊中,無需其它設備同意,每個CAN設備都可以主動向外發送數據,且所有設備都會收到數據&#xff0c…

【面試干貨】 非關系型數據庫(NoSQL)與 關系型數據庫(RDBMS)的比較

【面試干貨】 非關系型數據庫(NoSQL)與 關系型數據庫(RDBMS)的比較 一、引言二、非關系型數據庫(NoSQL)2.1 優勢 三、關系型數據庫(RDBMS)3.1 優勢 四、結論 💖The Begin…

孵化器補貼政策提問模板

對于一些需要創業的人來說,找場地是非常非常難的,一個好的場地能夠提高創業的成功率,下面這些內容對于孵化器產業園的政策有一個好的提問,可以幫助你們了解這個孵化器合不合適。需要創業的人可以收藏 某孵化器政策示例 提問模板 …

源代碼先轉字節碼,再轉機器碼的過程

編程語言分類 1. 機器語言 直接使用 (101010) 二進制指令去編寫程序, 等于 直接操作硬件優點 : 最底層, 離計算機最近, 執行速度快缺點 : 復雜難記, 開發效率最低, 2. 匯編語言 用英文標簽代替一組二進制指令, 本質上仍然是 直接操作硬件優點 : 比較底層, 執行速度最快缺點 …

【競技寶】歐洲杯:德國被烏克蘭逼平,27腳射門仍難得分!

歐洲杯前的熱身賽已經全面開啟,東道主德國隊算是打響了熱身賽的第一槍,只可惜他們在主場0比0被烏克蘭逼平。整場比賽,德國隊都占據明顯優勢,全場比賽轟出27腳射門,可是卻無法實現破門。這個時候德國球迷似乎回想到了前兩屆世界大賽,球隊被“鋒無力”支配的恐懼。 本場比賽德國隊…

如何制作Peppol文件?

Peppol (Pan-European Public Procurement Online) 是一種用于跨境電子采購的標準協議和網絡。它允許企業和政府機構以電子方式交換文件,如電子發票、訂單和發貨單。如果你需要制作Peppol文件,可以參考如下步驟: 準備必要工具和資源 1.Pepp…

Serif Affinity 2.5 (macOS, Windows) - 專業創意軟件

Serif Affinity 2.5 (macOS, Windows) - 專業創意軟件 Affinity Designer 2, Affinity Photo 2, Affinity Publisher 2 請訪問原文鏈接:Serif Affinity 2.5 (macOS, Windows) - 專業創意軟件,查看最新版。原創作品,轉載請保留出處。 作者主…

C語言什么打開?件后要及時關閉?

一、問題 對?件讀寫之前,需要使? fopen( ) 函數打開該?件:在使?完?件后,需要及時關閉?件。那么,為什么要及時關閉?件呢? 二、解答 ?件打開的過程是將存放在磁盤等外部設備上的?件讀?到內存中,以…

【第二節】C/C++數據結構之線性表

目錄 一、線性表基本說明 1.1 基本概念 1.2 抽象數據類型 1.3 存儲結構 1.4 插入與刪除的區別 1.5 順序存儲和鏈式存儲的優缺點 二、鏈表 2.1 基本概念 2.2 抽象數據類型 2.3 單鏈表的定義 2.4 單鏈表的基本操作 2.5 單鏈表模板形式的類定義與實現 三、單向循環鏈…

項目迭代中新老邏輯切換入口

前言 ? 日常我們在項目開發中經常會進行項目迭代,比如說開發初期設定的代碼邏輯根據功能需求迭代逐漸發現越來越難用,或者改動是對整體較大時,往往會進行專項處理,對這個邏輯進行改造。 ? 那么就會涉及到原先被調用方切換接口…

成功解決“ModuleNotFoundError: No module named ‘tensorflow_datasets‘”錯誤的全面指南

成功解決“ModuleNotFoundError: No module named ‘tensorflow_datasets’”錯誤的全面指南 在Python編程和深度學習項目中,tensorflow_datasets(通常簡稱為tfds)是一個非常重要的庫,它提供了大量現成的數據集,方便…

終于來啦!Stable Diffusion 3將在6月12日正式開源

6月3日晚,著名開源大模型平臺Stability AI的聯合首席執行官Christian Laforte,在AMD的產品發布會上宣布,文生圖模型 Stable Diffusion 3將于6月12日在Hugging Face開源權重。 本次開源的是Stable Diffusion 3的Medium模型,有20億…

武漢盛勢啟創科技攜手三品軟件 EDM系統助力企業圖文檔數字化

客戶簡介 武漢盛勢啟創科技有限公司(以下簡稱“盛世啟創”)是一家專注于新能源汽車零部件領域的科技型企業,其主要業務涵蓋新能源汽車三電系統智能傳感器、智能座艙及線控底盤控制器的芯片開發、硬件設計、嵌入式系統開發。以及相關產品的生產…

C++第二十三彈---深入理解STL中list的使用

?個人主頁: 熬夜學編程的小林 💗系列專欄: 【C語言詳解】 【數據結構詳解】【C詳解】 目錄 1、list的介紹 2、list的使用 2.1、構造函數 2.2、賦值操作符重載 2.3、迭代器使用 2.4、容量操作 2.5、元素訪問 2.6、修改操作 2.7、其…

從0開始學人工智能測試節選:Spark -- 結構化數據領域中測試人員的萬金油技術(三)

分布式計算原理 分布式計算的原理總結一句話就是:分而治之。 把數據分片,存在不同的機器中,解決數據存儲的壓力。客戶端和服務端之間通過相關協議來自動的完成在不同的機器之間進行數據的存取,用戶并不感知數據的物理存儲結構。 用…

UIKit之App界面Demo

需求 實現簡單的APP界面 功能: 實現滾動實現上層、下層橫欄滾動時穿透效果(永遠浮在表面,不跟著滾動)。暫用UIView代替,還沒學Bar。 分析: 知識點: 實現鼠標拖動的上下滾動:當…

小紅書前端2輪面試期望22K,全程問低代碼設計

一面(通過) 1、好,那我們開始把,先簡單介紹一下自己的一個經歷,以及自己有亮點的項目?balabala 2、你可以這樣介紹:在這里邊主要負責哪幾個項目,哪些項目是比較有亮點的&#xff0…

python用PyPDF2函數庫方法對pdf文件切割

煩透了那些軟件動不動就要收費,于是自己嘗試碼程序處理pdf分割。 由于PyPDF2更新到了3.0之后,之前網上的舊代碼無法使用,查了半天沒出準譜,結果百度AI生成了代碼,一試,成了! 果然,…