Spark第二課RDD的詳解

1.前言

RDD
JAVA中的IO

1.小知識點穿插

1. 裝飾者設計模式

裝飾者設計模式:本身功能不變,擴展功能.
舉例: 數據流的讀取
一層一層的包裝,進而將功能進行進一步的擴展
在這里插入圖片描述

2.sleep和wait的區別

本質區別是字體不一樣,sleep斜體,wait正常
斜體是靜態方法
sleep:靜態方法,和對象無關
t1.sleep 當前休眠的不是t1線程,而是調用方法的線程,如果在主線程運行,調用的就是主線程,
與對象無關,得不到對象鎖
wait :成員方法 ,與對象相關
t2.wait 當前等待的線程是t2線程
能得到對象鎖,能釋放.

在這里插入圖片描述
空指針異常:調用一個為null的對象的成員屬性或成員方法,會發生空指針異常,
注意 是成員的 ,如果是靜態的,與動態就無關了.
在這里插入圖片描述
為什么會出現空指針?
報錯的時候,給的是.class的位置,不一定完全對應java的問題,
去看字節碼Terminal 輸入javap -c +名稱 -v的話,更詳細
在這里插入圖片描述
intValue是一個成員方法,但是此時age沒有賦值,是null, 空對象的成員方法調用

this與super

在這里插入圖片描述
在這里插入圖片描述
this是當前方法的局部變量,
super只在編譯時出現,this可以在運行時出現

3.關于import *

在這里插入圖片描述
這個是給javac 用的,讓javac自動去找
編譯成.class 時,需要什么就導什么,而不是全部都導

2.正題

1.注意點 切片與讀取的不同

HADOOP切片邏輯是均分
但是讀取數據進行分區保存時,不能均分,
HADOOP是按行讀,而不是字節,
為啥HADOOP按行讀取,一行就是一個業務數據
但是切片是均分,指的是字節均分

2.hadoop讀取按照偏移量讀取,同一個數據的偏移量不能被重復讀取,也就是必須重來?

在這里插入圖片描述

5+2+1+2+6 =16
4個分區,能均分
4個分區,讀按行讀,所以最后一個是空 數據傾斜

2.轉換算子

1.是什么?

Transformation轉換算子
轉換方法
算子是個啥?
認知心理學 解決問題的狀態: 初始狀態(提出問題) -> 解決 不強調過程
在這里插入圖片描述
轉換:一個東西變成另外一個東西
在這里插入圖片描述
所謂的轉換算子,就是調用RDD對象的功能(方法)轉變成一個新RDD
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
元組,需要先知道一共多少個數據, 默認元組最多為22個
元組是專門用來存放無關數據的,不同數據類型也能存
取的時候
在這里插入圖片描述
如果元組中元素就兩個,稱為對偶元組,也稱為鍵值對
在這里插入圖片描述
RDD不保存(處理后的)數據,RDD是容器,但是容器是工具,存儲數據的,是數組,鏈表,而不是容器
在這里插入圖片描述
加這個才能將類中的方法可以進行函數式

只需要考慮方法輸入輸出
在這里插入圖片描述
在這里插入圖片描述
因為必須有返回值,馬丁知道,所以return 可以省略
在這里插入圖片描述
想省略參數,得有方法
如果一個整體需要拆分成多個個體,這種操作,叫做扁平化
Flat就是變

3.map

一個輸入 一個輸出 不能一個輸入多個輸出

package com.atguigu.core.rdd.transform;import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;import java.util.Arrays;
import java.util.List;public class SparkRDDmap {public static void main(String[] args) {JavaSparkContext sc = new JavaSparkContext("local[*]","SPARK_mapT");List<Integer> dataList = Arrays.asList(1,2,3,4);JavaRDD<Integer>  rdd = sc.parallelize(dataList, 3);JavaRDD<Integer>  rddMap = rdd.map(in -> in * 2);// 用流的形式進行操作rddMap.collect().forEach(System.out::println);sc.stop();}
}

4.flatMap

1.flatMap與Map的區別

map:一個輸入,一個輸出 做不到一個輸入多個輸出 也做不到多個輸入少個輸出
flatmap 扁平化 一個輸入 n個輸出 n(0和任意正整數)
整體拆成個體,但是每個個體都要使用
在這里插入圖片描述
在這里插入圖片描述

注意,這里的return 是泛型(不加也行) ,也可以是迭代器

5.分組

1.注意點 一個組的數據必定在一個分區

分組不是分區,分組是將數據按組劃分,是將所有數據重新進行劃分,按組成編制,
本來數據是單獨放入區中的,而現在的數據,是以組為單位放入區的,而不是說一個分區里面只能有一個組,分組與分區,無關
在這里插入圖片描述

Spark的分組,一個組的數據放置在一個分區中(把之前的分區聚合了)
在這里插入圖片描述
組是輸出 組內數據是輸入
輸出 就是分組規則
在這里插入圖片描述
這種寫法,直接. 中間結果不會在內存中留下
在這里插入圖片描述
奇偶分組,這個的組名是true false
奇偶分組,去掉==0時,組名為0 1

在這里插入圖片描述

分組過程中,將已分組的數據先放入磁盤,分完組,重新按組分流,動態改變分區數量
在這里插入圖片描述
默認分區數是不變的,這里主動修改分區數,才改變的

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

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

相關文章

經過幾天的亂搞,已經搞出來第一次stm32點燈程序

看吧那個燈泡已經亮了 stm32跟51不同的地方是這里引腳一組16個&#xff0c;如PA0,PA1,PA2,,,,,,PA15 51一組8個 例如P00,P01,P02,,,,P07

全新重構,探尋 24 歲 QQ 大重構背后的思考

在瞬息萬變的互聯網行業中,年過二十四的 QQ 堪稱超長壽的產品,見證了中國互聯網崛起的完整歷程。然而,如今這個元老級產品經歷了一次從內到外徹底的重構。 在這次重構中,QQ 選擇了 Electron 作為 UI 跨平臺開發框架。盡管 Electron 被 Slack、Visual Studio Code 和 Disco…

[Go版]算法通關村第十一關青銅——理解位運算的規則

目錄 數字在計算機中的表示&#xff1a;機器數、真值對機器數進一步細化&#xff1a;原碼、反碼、補碼為何會有原碼、反碼和補碼為何計算機中的按位運算使用的是補碼&#xff1f;位運算規則與、或、異或和取反移位運算移位運算與乘除法的關系位運算常用技巧?? 操作某個位的數…

Unity用NPOI創建Exect表,保存數據,和修改刪除數據。以及打包后的坑——無法打開新創建的Exect表

先說坑花了一下午才找到解決方法解決&#xff0c; 在Unity編輯模式下點擊物體創建對應的表&#xff0c;獲取物體名字與在InputText填寫的注釋數據。然后保存。創建Exect表可以打開&#xff0c;打包PC后&#xff0c;點擊物體創建的表&#xff0c;打不開文件破損 解決方法&#…

大數據培訓前景怎么樣?企業需求量大嗎

大數據行業對大家來說并不陌生&#xff0c;大數據行業市場人才需求量大&#xff0c;越早入行越有優勢&#xff0c;發展機會和上升空間等大。不少人通過大數據培訓來提升自己的經驗和自身技術能力&#xff0c;以此來獲得更好的就業機會。 2023大數據培訓就業前景怎么樣呢?企業需…

ubuntu18 下更改 mysql 數據目錄

一、修改步驟 更改 MySQL 的數據目錄需要注意以下幾個步驟&#xff1a; 停止 MySQL 服務 在 Ubuntu 中&#xff0c;你可以使用以下命令停止 MySQL 服務&#xff1a; sudo systemctl stop mysql 復制現有數據 假設你的新的數據目錄是 /new/dir/mysql&#xff0c;你應該使用 rsy…

區間覆蓋 線段覆蓋 二分

4195. 線段覆蓋 - AcWing題庫 P2082 區間覆蓋&#xff08;加強版&#xff09; - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 做法&#xff1a; void solve() {int n; cin>>n;vector<array<LL,2>> seg(n);for(auto &t: seg) cin>>t[0]>>…

從視覺裝備到智能駕駛,天準科技能否打造第二增長極?

智能網聯汽車已經成為了上市公司跨界布局的熱門賽道。 天準科技是工業視覺智能裝備領域的龍頭企業&#xff0c;主要客戶包括蘋果、三星等企業。招股說明書顯示&#xff0c;2016年至2018年&#xff0c;天準科技來源于蘋果公司及其供應商的收入合計占比達到49.98%、67.99%及76.0…

Spark操作Hive表冪等性探索

前言 旁邊的實習生一邊敲著鍵盤一邊很不開心的說:做數據開發真麻煩,數據bug排查太繁瑣了,我今天數據跑的有問題,等我處理完問題重新跑了代碼,發現報表的數據很多重復,準備全部刪了重新跑。 我:你的數據操作具備冪等性嗎? 實習生:啥是冪等性?數倉中的表還要考慮冪等…

JVS開源基礎框架:平臺基本信息介紹

JVS是面向軟件開發團隊可以快速實現應用的基礎開發腳手架&#xff0c;主要定位于企業信息化通用底座&#xff0c;采用微服務分布式框架&#xff0c;提供豐富的基礎功能&#xff0c;集成眾多業務引擎&#xff0c;它靈活性強&#xff0c;界面化配置對開發者友好&#xff0c;底層容…

互聯網賬號被封禁解決辦法,以qq為例

百度搜索&#xff1a;互聯網信息服務投訴平臺 電腦端瀏覽器&#xff1a;打開 ts.isc.org.cn 推薦使用360極速瀏覽器 谷歌瀏覽器 提交完成后&#xff0c;將投訴碼保存&#xff0c;可以在“查詢評價”處用投訴碼查詢進度

windows安裝go,以及配置工作區,配置vscode開發環境

下載安裝go 我安裝在D:\go路徑下配置環境變量 添加GOROOT value為D:\go修改path 添加%GOROOT%\bin添加GOPATH value為%USERPROFILE%\go 其中GOPATH 是我們自己開發的工作區&#xff0c;其中包含三個folder bin,pkg,以及src&#xff0c;其中src為我們編寫代碼的位置 配置vscod…

Vue路由守衛

目錄 一、全局路由守衛二、獨享路由守衛三、組件內路由守衛 一、全局路由守衛 作用全局 router.beforeEach全局前置路由守衛—初始化的時候被調用、每次路由切換之前被調用router.afterEach全局后置路由守衛—初始化的時候被調用、每次路由切換之后被調用 配置 // 該文件專…

git使用規范

Git規范&#xff08;公司使用gitlab&#xff09; 版本規范 前端項目使用語義化版本進行發布: 版本格式&#xff1a;主版本號.次版本號.修訂號&#xff0c;版本號遞增規則如下&#xff1a; 主版本號&#xff1a;當你做了不兼容的 API 修改&#xff0c;次版本號&#xff1a;當…

uniapp 使用 uni push 2.0 推送消息

因為之前使用uni push 1.0&#xff0c;開通賬號和配置廠商就不寫了。只說一點&#xff0c;配置廠商很重要&#xff0c;不然收不到離線推送的消息。那么就直接開始咯&#xff01;&#xff01;&#xff01; 一、創建并關聯云服務空間 1.創建云服務空間&#xff0c;右鍵項目【創…

Java進階(3)——手動實現ArrayList 源碼的初步理解分析 數組插入數據和刪除數據的問題

目錄 引出手動實現ArrayList定義接口MyList<T>寫ArrayList的實現類增加元素刪除元素 寫測試類進行測試數組插入數據? 總結 引出 1.ArrayList的結構分析&#xff0c;可迭代接口&#xff0c;是List的實現&#xff1b; 2.數組增加元素和刪除元素的分析&#xff0c;何時擴容…

利用HTTP代理實現請求路由

嘿&#xff0c;大家好&#xff01;作為一名專業的爬蟲程序員&#xff0c;我知道構建一個高效的分布式爬蟲系統是一個相當復雜的任務。在這個過程中&#xff0c;實現請求的路由是非常關鍵的。今天&#xff0c;我將和大家分享一些關于如何利用HTTP代理實現請求路由的實用技巧&…

數據結構----哈夫曼樹

這里寫目錄標題 基本概念引子基本概念各種路徑長度各種帶權路徑長度結點的帶權路徑長度樹的帶權路徑長度哈夫曼樹 哈夫曼樹的構造理論基礎構造思想總結 哈夫曼樹的實現哈夫曼編碼前綴編碼哈夫曼編碼的思想案例代碼實現 編碼與解碼 基本概念 引子 哈夫曼樹就是尋找構造最優二叉…

Docker容器基礎

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、Docker概述1、docker是什么2、Docker的設計宗旨3、容器在內核中支持2種重要技術&#xff1a; 三、Docker的核心概念四、Docker相關命令1.安裝依賴包2.設置阿里云…

無線測溫產品在半導體制造項目的應用

摘 要&#xff1a;半導體被譽為“制造業的大腦”&#xff0c;在關系國家安全和國民經濟命脈的主要行業和關鍵領域占據支配地位&#xff0c;是國民經濟的重要支柱。 隨著數字技術的發展和數字經濟在國民經濟中所占比重越來越高&#xff0c;半導體產業的重要性還會進一步提升。安…