最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

鎖屏面試題百日百刷-Spark篇(十八)

2023-03-30 12:28 作者:zjlala96  | 我要投稿

鎖屏面試題百日百刷,每個(gè)工作日?qǐng)?jiān)持更新面試題。鎖屏面試題app、小程序現(xiàn)已上線,官網(wǎng)地址:https://www.demosoftware.cn。已收錄了每日更新的面試題的所有內(nèi)容,還包含特色的解鎖屏幕復(fù)習(xí)面試題、每日編程題目郵件推送等功能。讓你在面試中先人一步!接下來的是今日的面試題:


1.為什么要進(jìn)行序列化

序列化可以減少數(shù)據(jù)的體積,減少存儲(chǔ)空間,高效存儲(chǔ)和傳輸數(shù)據(jù),不好的是使用的時(shí)候要反序列化,非常消耗CPU。

2.下面這段代碼輸出結(jié)果是什么?

def joinRdd(sc:SparkContext) {

val name= Array(

Tuple2(1,"spark"), Tuple2(2,"tachyon"), Tuple2(3,"hadoop")

)

val score= Array(

Tuple2(1,100), Tuple2(2,90), Tuple2(3,80)

)

val namerdd=sc.parallelize(name);

val scorerdd=sc.parallelize(score);

val result = namerdd.join(scorerdd);

result .collect.foreach(println);

}

答案:

(1,(Spark,100))

(2,(tachyon,90))

(3,(hadoop,80))

3.Spark累加器有哪些特點(diǎn)?

1)累加器在全局唯一的,只增不減,記錄全局集群的唯一狀態(tài);

2)在exe中修改它,在driver讀??;

3)executor級(jí)別共享的,廣播變量是task級(jí)別的共享兩個(gè)application不可以共享累加器,但是同一個(gè)app不同的job可以共享。

4.spark hashParitioner的弊端是什么?

HashPartitioner分區(qū)的原理很簡單,對(duì)于給定的key,計(jì)算其hashCode,并除于分區(qū)的個(gè)數(shù)取余,如果余數(shù)小于0,則用余數(shù)+分區(qū)的個(gè)數(shù),最后返回的值就是這個(gè)key所屬的分區(qū)ID;弊端是數(shù)據(jù)不均勻,容易導(dǎo)致數(shù)據(jù)傾斜,極端情況下某幾個(gè)分區(qū)會(huì)擁有rdd的所有數(shù)據(jù)。

5.RangePartitioner分區(qū)的原理?

RangePartitioner分區(qū)則盡量保證每個(gè)分區(qū)中數(shù)據(jù)量的均勻,而且分區(qū)與分區(qū)之間是有序的,也就是說一個(gè)分區(qū)中的元素肯定都是比另一個(gè)分區(qū)內(nèi)的元素小或者大;但是分區(qū)內(nèi)的元素是不能保證順序的。簡單的說就是將一定范圍內(nèi)的數(shù)映射到某一個(gè)分區(qū)內(nèi)。其原理是水塘抽樣。

6.介紹parition和block有什么關(guān)聯(lián)關(guān)系?

1)hdfs中的block是分布式存儲(chǔ)的最小單元,等分,可設(shè)置冗余,這樣設(shè)計(jì)有一部分磁盤空間的浪費(fèi),但是整齊的block大小,便于快速找到、讀取對(duì)應(yīng)的內(nèi)容;

2)Spark中的partion是彈性分布式數(shù)據(jù)集RDD的最小單元,RDD是由分布在各個(gè)節(jié)點(diǎn)上的partion組成的。partion是指的spark在計(jì)算過程中,生成的數(shù)據(jù)在計(jì)算空間內(nèi)最小單元,同一份數(shù)據(jù)(RDD)的partion大小不一,數(shù)量不定,是根據(jù)application里的算子和最初讀入的數(shù)據(jù)分塊數(shù)量決定;

3)block位于存儲(chǔ)空間、partion位于計(jì)算空間,block的大小是固定的、partion大小是不固定的,是從2個(gè)不同的角度去看數(shù)據(jù)。

7.hbase預(yù)分區(qū)個(gè)數(shù)和spark過程中的reduce個(gè)數(shù)相同么

預(yù)分區(qū)數(shù)和spark的map個(gè)數(shù)相同,reduce個(gè)數(shù)如果沒有設(shè)置和reduce前的map數(shù)相同。

8.Spark如何自定義partitioner分區(qū)器?

1)spark默認(rèn)實(shí)現(xiàn)了HashPartitioner和RangePartitioner兩種分區(qū)策略,我們也可以自己擴(kuò)展分區(qū)策略,自定義分區(qū)器的時(shí)候繼承org.apache.spark.Partitioner類,實(shí)現(xiàn)類中的三個(gè)方法:

def numPartitions: Int:這個(gè)方法需要返回你想要?jiǎng)?chuàng)建分區(qū)的個(gè)數(shù);

def getPartition(key: Any): Int:這個(gè)函數(shù)需要對(duì)輸入的key做計(jì)算,然后返回該key的分區(qū)ID,范圍一定是0到numPartitions-1;

equals():這個(gè)是Java標(biāo)準(zhǔn)的判斷相等的函數(shù),之所以要求用戶實(shí)現(xiàn)這個(gè)函數(shù)是因?yàn)镾park內(nèi)部會(huì)比較兩個(gè)RDD的分區(qū)是否一樣。

2)使用,調(diào)用parttionBy方法中傳入自定義分區(qū)對(duì)象。


鎖屏面試題百日百刷-Spark篇(十八)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
来凤县| 大方县| 当涂县| 鞍山市| 集贤县| 西和县| 罗甸县| 天柱县| 侯马市| 桦南县| 泰和县| 绍兴市| 泊头市| 鸡东县| 德安县| 泽普县| 广丰县| 赣榆县| 紫阳县| 璧山县| 祁阳县| 辽中县| 英吉沙县| 区。| 昌邑市| 宁津县| 旌德县| 江城| 灵山县| 商水县| 绥化市| 绿春县| 巴南区| 南皮县| 泗水县| 新平| 温宿县| 襄汾县| 焉耆| 平南县| 岗巴县|