大数据从入门到实战 - RDD的创建 -Scala
叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
![在这里插入图片描述](https://img-blog.csdnimg.cn/202003012210578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTQzNzg5,size_16,color_FFFFFF,t_70#pic_center)
一、关于此次实践
1、实战简介
Spark提供了两种创建RDD的方式:
(1)由一个已经存在的Scala集合进行创建。
(2)由外部存储系统的数据集创建,包括本地的文件系统,还有所有Hadoop支持的数据集,比如HDFS、Cassandra、HBase等。
2、全部任务
第1关:实践题
集合并行化创建RDD
第2关:实践题
读取外部数据集创建RDD
二、实践详解
1、第1关:集合并行化创建RDD
任务描述
本关任务:计算并输出各个学生的总成绩。
相关知识
为了完成本关任务,你需要掌握:1.集合并行化创建RDD,2.reduceByKey算子、foreach算子
集合创建RDD
Spark会将集合中的数据拷贝到集群上去,形成一个分布式的数据集合,也就是一个RDD。相当于是,集合中的部分数据会到一个节点上,而另一部分数据会到其他节点上。然后就可以用并行的方式来操作这个分布式数据集合,即RDD。
val list=List(1,2,3,4,5)
val stu=sc.parallelize(list,3)//参数1:Seq集合,必须。参数2:分区数,默认为该Application分配到的资源的CPU核数
//val stu=sc.makeRDD(list,3) //和parallelize用法一样。(该用法可以指定每一个分区的preferredLocations)。
val sum=stu.reduce(_+_)
println(sum)
输出:15
reduceByKey()
对元素为RDD[K,V]对的RDD中Key相同的元素的Value进行聚合
val list = List(("spark",2),("hive",1),("hive",2))
val stuRDD = sc.makeRDD(list)
stuRDD.reduceByKey(_+_)
输出:
(spark,2)
(hive,3)
foreach():对数据集中每一个元素运行函数
val list = List(1,2,3,4)
val stuRDD = sc.makeRDD(list)
stuRDD.foreach(print)//对这个RDD进行遍历输出
输出:1234
2、第2关:读取外部数据集创建RDD
参见博文:
https://blog.csdn.net/coding01/article/details/81365044
- 从HDFS中读数据
- 从MySQL数据库中读数据
- 从HBase数据库中读数据
Ending!
更多课程知识学习记录随后再来吧!
就酱,嘎啦!
注:
人生在勤,不索何获。