RDD(Resilient Distributed Dataset)全称是弹性分布式数据集,官方文档的描述是:
The main abstraction Spark provides is a resilient distributed dataset (RDD), which is a collection of elements partitioned across the nodes of the cluster that can be operated on in parallel
RDD虽然叫数据集,但它并不存储数据,可以抽象理解为待处理数据的代理
在分布式情况下,数据分布在不同位置,我们不可能一个一个去处理。所以用RDD代表要处理的所有数据集,这样就能方便的进行并行计算
* Internally, each RDD is characterized by five main properties:
*
* - A list of partitions
* - A function for computing each split
* - A list of dependencies on other RDDs
* - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
* - Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)
复制
// 创建配置对象
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount");
val sc = new SparkContext(sparkConf)
/** Word Count **/
val fileRDD: RDD[String] = sc.textFile("data/input/word.txt") // (1)读取,一行一行的读取文件
val flatRDD: RDD[String] = fileRDD.flatMap( _.split(" ") ) // (2)切分,一行字符切成单个单词
val mapRDD: RDD[(String, Int)] = flatRDD.map((_,1)) // (3)转换,数据结构 word => (word, 1)
val reduceRDD: RDD[(String, Int)] = mapRDD.reduceByKey(_+_) // (4)聚合,相同相加
复制
RDD几个重要特点
分区的弹性:在经过转换算子处理时,RDD中的分区数以及分区所在的位置是可以改变的。这样可以改变并行度,合理利用资源
文章转载自码农大腿哥,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
2394次阅读
2025-04-09 15:33:27
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1110次阅读
2025-04-27 16:53:22
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
795次阅读
2025-04-10 15:35:48
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
614次阅读
2025-04-30 15:24:06
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
553次阅读
2025-04-11 09:38:42
天津市政府数据库框采结果公布,7家数据库产品入选!
通讯员
538次阅读
2025-04-10 12:32:35
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
522次阅读
2025-04-14 09:40:20
最近我为什么不写评论国产数据库的文章了
白鳝的洞穴
485次阅读
2025-04-07 09:44:54
一页概览:Oracle GoldenGate
甲骨文云技术
441次阅读
2025-04-30 12:17:56
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
439次阅读
2025-04-17 17:02:24