spark 面试题

1.Map和MapPartition的区别,foreach和foreachPartition的区别

前者对应的函数一次只计算1条数据,后者一次计算一个分区的数据

使用场景:

前者适于内存有限、分区数据量又特别大的环境。

后者适用内存足够,分区数据量可接受的环境。

优先选择后者,批处理效率更高。

MapPartition是transformation算子,懒加载,有返回值,foreachPartition是action算子无返回值

一般用MapPartition做转换,用foreachPartition做结果输出。

2.reduceByKey(_+_)和groupByKey()的区别

前者:按key聚合,shuffle前有预聚合操作,该算子需要传参,传一个函数

后者:按key分组,直接shuffle,该算子不需要传参,在后面接算子

3.cache,persist,checkpoint 区别

都是用于spark持久化,cache=persist(only_memery)

persist还可以设置为持久化到磁盘,两者不会切断rdd上下游依赖,且程序运行结束时,会自动释放存储。

checkpoint需要先指定持久化的目录,会切断rdd上下游依赖,程序运行结束后,不会释放存储。

  • checkpo

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值