解析:
答:rangePartioner尽量保证每个分区中数据量的均匀,⽽且分区与分区之间是有序的,⼀个分区中的元素肯定都是⽐另⼀个分区内的元素⼩或者⼤;但是分区内的元素是不能保证顺序的。
简单的说就是将⼀定范围内的数映射到某⼀个分区内。RangePartitioner作⽤:将⼀定范围内的数映射到某⼀个分区内,在实现中,分界的算法尤为重要。算法对应的函数是rangeBounds
什么是⼆次排序,你是如何⽤spark实现⼆次排序的?(互联⽹公司常⾯)
解析:
答:就是考虑2个维度的排序,key相同的情况下如何排序,参考博⽂:http://blog.csdn.net/sundujing/article/details/51399606
如何使⽤Spark解决TopN问题?(互联⽹公司常⾯)
解析:
答:常⻅的⾯试题,参考博⽂:http://www.cnblogs.com/yurunmiao/p/4898672.html
如何使⽤Spark解决分组排序问题?(互联⽹公司常⾯)
解析:
组织数据形式:
aa 11
bb 11
cc 34
aa 22
bb 67
cc 29
aa 36
bb 33
cc 30
aa 42
bb 44
cc 49
需求:
www.aboutyun.com/thread-24246-1-1.html 20/57
2019/4/24 spark相关的⾯试题跟答案,带着问题学习效果更佳哟。?)-⾯试区-about云开发
截取分组后值得top 3位以key-value形式返回结果
解析:
答案:如下
----------------------
val groupTopNRdd = sc.textFile("hdfs://db02:8020/user/hadoop/groupsorttop/groupsorttop.data")
groupTopNRdd.map(_.split(" ")).map(x => (x(0),x(1))).groupByKey().map(
x => {
val xx = x._1
val yy = x._2
(xx,yy.toList.sorted.reverse.take(3))
}
).collect
---------------------