Spark低级算子

95 篇文章 0 订阅
29 篇文章 2 订阅

什么是RDD?

RDD(Rdeilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显示地将工作集缓存在内存中,后续的查询能够重用工作集,这极大的提升了查询速度。

RDD的属性(源码注释)

  • 一组分片
  • 一个计算每个分区的函数
  • RDD之间的依赖关系
  • 一个partitioner,即RDD的分片函数
  • 一个列表,存储存取每个partitioner的优先位置(preferred location)

Transformation(图片来源官网)

RDD中的所有转换都是延迟加载的,也就是说,他们并不会直接计算结果。相反的,他们只是记住应用到基础数据集(例如一个文件)上的转换动作,只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正的运行。这种设计让spark更加有效的运行。

 

 Action(图片来源官网)

 

 

 

Transformation
转换含义
map(func)返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成
filter(func)返回一个新的RDD,该RDD由经过func函数计算后返回值为true的输入元素组成
flatMap(func)类似于map。但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)
union(otherDataset)对源RDD和参数RDD求并集后返回一个新的RDD
intersection(otherDataset)对源RDD和参数RDD求交集后返回一个新的RDD
distinct(numTasks)对源RDD进行去重后返回一个新的RDD
groupByKey(numTasks)在一个(k,v)的RDD上调用,返回一个(k,interator)的RDD
reduceByKey(func,[numtasks])在一个(k,v)的RDD上调用,返回一个(k,v)的RDD,使用指定的reduce函数,将相同的key的值聚合到一起,与groupByKey类似,reduce任务的个数可以通过第二个可选的参数来设置
sortByKey([ascending],[numTasks])在一个(k,v)的RDD上调用,K必须实现ordered接口,返回一个按照key进行排序的(k,v)的RDD
sortBy(func,[ascending],[numTasks])

与sortByKey类似,但是更灵活 

 

 

 

 

 

 

 

 

 

 

 

 

 

Action
动作含义
reduce(func)通过func函数聚集RDD中的所有的元素,这个功能必须是可交换且可并联的
collect()在驱动程序中,以数组的形式返回数据的所有的元素
count()返回RDD 的元素个数
first()返回RDD的第一个元素(类似于take(1))
take(n)返回一个有数据集的钱n个元素组成的数据

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值