常见算子使用_【每日一题】Spark的算子可以分为哪两类,区别是什么?

大家好,我是勾叔。今天的面试题是:Spark的算子可以分哪两类,这两类算子的区别是什么?并分别列举6个这两类算子,列举6个会产生Shuffle的算子。 11911c6e798aefc8551e03078fd60f9b.png 8c47d359e05887210619ea2d129292b0.png

问题分析

考察基本功,从多个维度考察对算子的理解。 11911c6e798aefc8551e03078fd60f9b.png 8c47d359e05887210619ea2d129292b0.png

核心问题回答

Spark的算子可以分为两类:Transformation、Action。 Transformation:
  • 从现有的数据集创建一个新的数据集,返回一个新的 RDD 操作。Transformation都是惰性的,它们并不会立刻执行,只是记住了这些应用到 RDD 上的转换动作;

Action:
  • 触发在 RDD 上的计算,这些计算可以是向应用程序返回结果,也可以是向存储系统保存数据。

Transformation 最重要的特点:
  • 延迟执行、返回 RDD ;

Action最重要的特点:
  • 触发 Job ,返回的结果一定不是 RDD 。

常见的 Transformation 包括:
  • map、mapVaules、filter、flatMap、mapPartitions、uoin、join、distinct、xxxByKey;

常见的 Action 包括:
  • count、collect、collectAsMap、first、reduce、fold、aggregate、saveAsTextFile。

有Shuffle的 Transformation 包括:
  • 一堆的 xxxByKey(sortBykey、groupByKey、reduceByKey、foldByKey、aggreageByKey、combineByKey)。备注:不包括countByKey;
  • join相关(join、leftOuterJoin、rightOuterJoin、fullOuterJoin、cogroup);
  • distinct、intersection、subtract、partionBy、repartition。
11911c6e798aefc8551e03078fd60f9b.png 8c47d359e05887210619ea2d129292b0.png

问题扩展

算子之间的区别、使用条件; 算子是如何实现的,如distinct。 大家如果想进行更深入的了解和学习,请关注勾叔谈大数据参与更多互动。 a224ec8105210abe7201eeced8a72691.png 推荐阅读: 【每日一题】描述一下你对RDD的理解。 【每日一题】Kafka的偏移量Offset存放在哪儿,为什么?(瓜子二手车) 【每日一题】说一下Hive怎么优化?(腾讯) 【每日一题】Redis的热键问题?Redis的数据类型 (京东)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值