1) union(otherRDD)
RDD-->UnionRDD
2) groupByKey(numPartitions)
RDD-->ShuffledRDD-->MapPartitionsRDD
groupByKey() 只需要将 Key 相同的 records 聚合在一起,一个简单的 shuffle 过程就可以完成。
3) reduceyByKey(func, numPartitions)
reduceyByKey() 相当于传统的 MapReduce
RDD-->MapPartitionsRDD-->ShuffledRDD-->MapPartitionsRDD
4) distinct(numPartitions)
RDD-->MappedRDD-->MapPartitionsRDD-->ShuffledRDD-->MapPartitionsRDD
distinct() 功能是 deduplicate RDD 中的所有的重复数据。
5) cogroup(otherRDD, numPartitions)
RDD-->CogroupRDD-->MapPartitionsRDD
与 groupByKey() 不同,cogroup() 要 aggregate 两个或两个以上的 RDD
6) intersection(otherRDD)
RDD-->MappedRDD-->CogroupRDD-->MappedValuesRDD-->FilteredRDD-->MappedRDD
intersection() 功能是抽取出 RDD a 和 RDD b 中的公共数据。
7) join(otherRDD, numPartitions)
RDD-->CogroupRDD-->MappedValuesRDD-->FlatMappedValuesRDD
join() 将两个 RDD[(K, V)] 按照 SQL 中的 join 方式聚合在一起。
8) sortByKey(ascending, numPartitions)
RDD-->ShuffledRDD-->MapPartitionsRDD
sortByKey() 将 RDD[(K, V)] 中的 records 按 key 排序,ascending = true 表示升序,false 表示降序。
9) cartesian(otherRDD)
RDD-->CartesianRDD
Cartesian 对两个 RDD 做笛卡尔集,生成的 CartesianRDD 中 partition 个数 = partitionNum(RDD a) * partitionNum(RDD b)。
相关文章
- RDD的转换操作---RDD转换过程
- java操作JSON字符串转换成对象的时候如何可以不建立实体类也能获取数据
- spark学习(六)Java版RDD基本的基本操作
- 编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]
- json的转换操作
- Java8获取当前时间、新的时间日期类如Java8的LocalDate与Date相互转换、ZonedDateTime等常用操作包含多个使用示例、Java8时区ZoneId的使用方法、Java8时间字符串解析成类
- pandas 对数据帧DataFrame中数据的增删、补全及转换操作
- 在js中将map对象转换成json 和 js对cookie的操作
- C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
- JaveScript基础(2)之数据类型转换和常用字符串的操作方法