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

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

1.coalesce和repartition的区别

coalesce和repartition都用于改变分区,coalesce用于缩小分区且不会进行shuffle,repartition用于增大分区(提供并行度)会进行shuffle,在spark中减少文件个数会使用coalesce来减少分区来到这个目的。但是如果数据量过大,分区数过少会出现OOM所以coalesce缩小分区个数也需合理

2.Spark sql中cache缓存级别

DataFrame的cache默认采用 MEMORY_AND_DISK 这和RDD 的默认方式不一样RDD cache 默认采用MEMORY_ONLY

3.Spark sql中怎样释放缓存和缓存

缓存:(1)dataFrame.cache (2)sparkSession.catalog.cacheTable(“tableName”)释放缓存(1)dataFrame.unpersist (2)sparkSession.catalog.uncacheTable(“tableName”)

4.Spark sql Shuffle默认并行度

参数spark.sql.shuffle.partitions 决定 默认并行度200

5.什么是kryo序列化

kryo序列化比java序列化更快更紧凑,但spark默认的序列化是java序列化并不是spark序列化,因为spark并不支持所有序列化类型,而且每次使用都必须进行注册。注册只针对于RDD。在DataFrames和DataSet当中自动实现了kryo序列化。

6.Spark sql中如何创建临时表和全局临时表

DataFrame.createTempView() 创建普通临时表

DataFrame.createGlobalTempView() 创建全局临时表

7.讲一讲BroadCast join 广播join

原理:先将小表数据查询出来聚合到driver端,再广播到各个executor端,使表与表join时进行本地join,避免进行网络传输产生shuffle。

使用场景:大表join小表 只能广播小表

8.如何控制Spark reduce缓存,调优Shuffle

spark.reducer.maxSizeInFilght 此参数为reduce task能够拉取多少数据量的一个参数默认48MB,当集群资源足够时,增大此参数可减少reduce拉取数据量的次数,从而达到优化shuffle的效果,一般调大为96MB,资源够大可继续往上跳。

spark.shuffle.file.buffer 此参数为每个shuffle文件输出流的内存缓冲区大小,调大此参数可以减少在创建shuffle文件时进行磁盘搜索和系统调用的次数,默认参数为32k 一般调大为64k。

9.如何注册UDF函数

SparkSession.udf.register 方法进行注册

10.SparkSQL中join操作与left join操作的区别?

join 和 sql 中的 inner join 操作很相似,返回结果是前面一个集合和后面一个集合中匹配成功的,过滤掉关联不上的。

leftJoin 类似于 SQL 中的左外关联 left outer join,返回结果以第一个 RDD 为主,关联不上的记录为空。

部分场景下可以使用 left semi join 替代 left join:

因为 left semi join 是 in(keySet) 的关系,遇到右表重复记录,左表会跳过,性能更高,而 left join 则会一直遍历。

但是 left semi join 中最后 select 的结果中只许出现左表中的列名,因为右表只有 join key 参与关联计算了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值