搜索

锁屏面试题百日百刷-Spark篇(十八)


发布时间: 2023-03-31 21:01:00    浏览次数:13 次

分享时间:2023-03-31 21:01:00
数据来源:网络
提取密码:在线浏览
文件类型:文章

锁屏面试题百日百刷,每个工作日坚持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cn。已收录了每日更新的面试题的所有内容,还包含特色的解锁屏幕复习面试题、每日编程题目邮件推送等功能。让你在面试中先人一步!接下来的是今日的面试题:

1.为什么要进行序列化

序列化可以减少数据的体积,减少存储空间,高效存储和传输数据,不好的是使用的时候要反序列化,非常消耗CPU。

2.下面这段代码输出结果是什么?

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累加器有哪些特点?

1)累加器在全局唯一的,只增不减,记录全局集群的唯一状态;

2)在exe中修改它,在driver读取;

3)executor级别共享的,广播变量是task级别的共享两个application不可以共享累加器,但是同一个app不同的job可以共享。

4.spark hashParitioner的弊端是什么?

HashPartitioner分区的原理很简单,对于给定的key,计算其hashCode,并除于分区的个数取余,如果余数小于0,则用余数+分区的个数,最后返回的值就是这个key所属的分区ID;弊端是数据不均匀,容易导致数据倾斜,极端情况下某几个分区会拥有rdd的所有数据。

5.RangePartitioner分区的原理?

RangePartitioner分区则尽量保证每个分区中数据量的均匀,而且分区与分区之间是有序的,也就是说一个分区中的元素肯定都是比另一个分区内的元素小或者大;但是分区内的元素是不能保证顺序的。简单的说就是将一定范围内的数映射到某一个分区内。其原理是水塘抽样。

6.介绍parition和block有什么关联关系?

1)hdfs中的block是分布式存储的最小单元,等分,可设置冗余,这样设计有一部分磁盘空间的浪费,但是整齐的block大小,便于快速找到、读取对应的内容;

2)Spark中的partion是弹性分布式数据集RDD的最小单元,RDD是由分布在各个节点上的partion组成的。partion是指的spark在计算过程中,生成的数据在计算空间内最小单元,同一份数据(RDD)的partion大小不一,数量不定,是根据application里的算子和最初读入的数据分块数量决定;

3)block位于存储空间、partion位于计算空间,block的大小是固定的、partion大小是不固定的,是从2个不同的角度去看数据。

7.hbase预分区个数和spark过程中的reduce个数相同么

预分区数和spark的map个数相同,reduce个数如果没有设置和reduce前的map数相同。

8.Spark如何自定义partitioner分区器?

1)spark默认实现了HashPartitioner和RangePartitioner两种分区策略,我们也可以自己扩展分区策略,自定义分区器的时候继承org.apache.spark.Partitioner类,实现类中的三个方法:

def numPartitions: Int:这个方法需要返回你想要创建分区的个数;

def getPartition(key: Any): Int:这个函数需要对输入的key做计算,然后返回该key的分区ID,范围一定是0到numPartitions-1;

equals():这个是Java标准的判断相等的函数,之所以要求用户实现这个函数是因为Spark内部会比较两个RDD的分区是否一样。

2)使用,调用parttionBy方法中传入自定义分区对象。

免责声明 锁屏面试题百日百刷-Spark篇(十八),资源类别:文本, 浏览次数:13 次, 文件大小:-- , 由本站蜘蛛搜索收录2023-03-31 09:01:00。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://segmentfault.com/a/1190000043604510