大数据算子(spark)
2014-02-21 09:23
295 查看
传统SQL理论依托于关系代数,而关系代数又是本质由关系运算的算子构成,复杂的关系查询也是由这些算子组合而成,弄懂算子也就弄好了基础。同样的原理也是由01的位运算可以构建出+-*/等基本运算一样,像搭积木一样的底层构建高层运算。
猜想大数据可能也是这样通过spark的RDD的基础运算函数应该就是基本的算子,总结如下。
本质上又可以分成三类 (一)所有元素全可以并行的运算像map(2)归并型子集合内单机,子集合间并行最后合并结果(3)整体无法并行的运算(此种基本不存在单机型基本在第二类的子集合内进行了单机的运算)
1 并行每个元素函数运算型 map,foreach(相当于没有返回值的map),mappartitions(每个分区内进行map,物理分治的map,flatmap(map+flat集合合并压平)
2 key分组型 map
3 key分组子集合运算型,reduce(相当于groupby后再map),groupby,groupbykey
4 分组拆分合并为大集合型 为(2的逆运算)flatmap(scala 中的 flatten)
5 采样型 :filter(自定义采样函数),top(topk 排序采样),takesample(随机采样),sample 和采样相反的是scala中的丢弃型操作 drop dropwhile像
6 合并型 union (set型合并,同类型合并),zip(映射型合并,set,set合并为k-v pair的类型)fold操作(在每个partition中进行关联函数流水线?)
8 流水线型操作 pipe ,scala中的foldleft和foldright(在遍历集合的同时将结果传递下去继续使用而进行运算 此种也是相当于在子集合中失去了并行化的可能)
9 关系运算型 cartesian (笛卡尔积)substract (差集运算) distinct(去重) (而 shark 就相当于在spark上扩充了一层关系运算和关系存储的元存储,相当于这些运算的层级要低于关系运算可以构建关系运算,同样层级低于图运算graphx中的图运算)
10 聚集函数
大类 (1) 1每个元素型 (2) 分治集合和子集合合并型的正反操作(2,3,4) (3)采样型(减少)和合并型(增多)的正逆操作型 (4)高层算子关系代数(5)聚集函数 (6)流水线型运算
猜想大数据可能也是这样通过spark的RDD的基础运算函数应该就是基本的算子,总结如下。
本质上又可以分成三类 (一)所有元素全可以并行的运算像map(2)归并型子集合内单机,子集合间并行最后合并结果(3)整体无法并行的运算(此种基本不存在单机型基本在第二类的子集合内进行了单机的运算)
1 并行每个元素函数运算型 map,foreach(相当于没有返回值的map),mappartitions(每个分区内进行map,物理分治的map,flatmap(map+flat集合合并压平)
2 key分组型 map
3 key分组子集合运算型,reduce(相当于groupby后再map),groupby,groupbykey
4 分组拆分合并为大集合型 为(2的逆运算)flatmap(scala 中的 flatten)
5 采样型 :filter(自定义采样函数),top(topk 排序采样),takesample(随机采样),sample 和采样相反的是scala中的丢弃型操作 drop dropwhile像
6 合并型 union (set型合并,同类型合并),zip(映射型合并,set,set合并为k-v pair的类型)fold操作(在每个partition中进行关联函数流水线?)
8 流水线型操作 pipe ,scala中的foldleft和foldright(在遍历集合的同时将结果传递下去继续使用而进行运算 此种也是相当于在子集合中失去了并行化的可能)
9 关系运算型 cartesian (笛卡尔积)substract (差集运算) distinct(去重) (而 shark 就相当于在spark上扩充了一层关系运算和关系存储的元存储,相当于这些运算的层级要低于关系运算可以构建关系运算,同样层级低于图运算graphx中的图运算)
10 聚集函数
大类 (1) 1每个元素型 (2) 分治集合和子集合合并型的正反操作(2,3,4) (3)采样型(减少)和合并型(增多)的正逆操作型 (4)高层算子关系代数(5)聚集函数 (6)流水线型运算
相关文章推荐
- spark算子:partitionBy对数据进行分区
- 大数据:Spark Core(四)用LogQuery的例子来说明Executor是如何运算RDD的算子
- [大数据之Spark]——Actions算子操作入门实例
- 大数据:Spark 算子(一)排序算子sortByKey来看大数据平台下如何做排序
- [大数据]连载No10之Spark算子计算by java
- 大数据-Spark Java版,核心算子使用简介
- [大数据]连载No6之Spark(RDD特性,算子)+第一行代码Hello WordCount
- [大数据]连载No8之Spark(集群客户端+控制类算子+广播变量+任务调度)
- spark从mongodb导入数据到hive
- 大数据IMF传奇行动绝密课程第48课:Spark性能优化第四季
- Spark性能优化:数据倾斜调优
- Spark——为数据分析处理提供更为灵活的赋能
- Spark算子:RDD基本转换操作(5)–mapPartitions、mapPartitionsWithIndex
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink
- 【DataMagic】如何在万亿级别规模的数据量上使用Spark
- spark集群从HDFS中读取数据并计算
- 延云YDB基于spark进行数据分析的一种新方式
- IndexR:速度最快的大数据存储格式介绍(与在spark上的使用)
- 2017年8月大数据-基于Spark的机器学习-智能客户系统项目实战
- 【转载】大数据Hadoop与Spark学习经验谈