当前课程知识点:大数据系统基础 > 5.内存计算 > 授课视频 > 5.14Spark编程实例——WorkCount
我们再来看一个Spark的例子
这是一个WordCount
也就是学Map Reduce的时候
大家都非常非常熟悉的一个例子
那么首先在Spark里面
有个叫SparkContext
我们在去使用Spark的这样的
textFile这些调样之前
我们要先生成一个
Sparkcontext
那么然后我们再把这个文件
从hdfs上把它调入到
这个内存里生成一个RDD file
那么后面我们就对这个file
来做WordCount了
这个WordCount大家可以看
它其实非常的简单
这里面用了两个
我们刚才说过的这个Spark
里面的这个两个函数
一个是flatMap
这是一个transformation
那它我们刚才讲过
它的作用是什么
它是说我们可以把其中一个元素
就这个file里面的某一个line
然后把它变成零个或者多个元素
那么这个里面它是怎么做的
它实际上相当于
把这一行做了分词
split用空格来分词
也就是说
这一行那么通过flatMap
比如说 A B C是这一行
file原来是这样的内容
那么通过这个flatMap
我们实际上把它变成了这个
三个这样的元素A B C
也就是说从一个对应到三个
这也就是flatMap
它的和普通的Map不一样的
这样的一个地方
然后下一步
我们就进一步的去做Map
这个Map大家都非常熟
那么在这个WordCount里面
我们遇到一个Word
比如说遇到A
那么我们把它转换成一个什么
Word1就是把A又变成了A1
对应的B我们变成B1
C变成C1
那么这个也变化完了以后
我们就得到了这样的
一个数据集
这样的一个数据集以后
我们再ReduceByKey
那我们知道这里的Key
就是A B C
当然我们刚才写的是A B C
如果后面我们再加一个A
那么我们刚才这个flatMap
得到的结果就是A B C A
那么这个里面
我们就会又得到一个A1
那么这个reduceByKey
我们就可以得到
一个什么样的结果
那应该就是A2
因为这是一个加法就是
所有遇到A后面的这个数
这个value我们要把它加起来
这里面有两个A我们就是2
然后B1然后C2
就是这样的一个结果
就可以用reduceByKey
来表达出来
大家可以对比一下
我们过去写的Map Reduce程序
再看一下这个Spark
这样的一个数据
可以看到Spark的这种
函数式表达
使得它的这个程序编写
非常的简洁
而且也非常地清晰易懂
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-1. 绪论--Quiz 1
-授课视频
--2.2并行化理念
--2.9计算虚拟化
-2.云计算--Quiz 2
-授课视频
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-3.文件存储--Quiz3
-授课视频
--4.13类似框架
--4.14章节总结
-4. 处理框架--Quiz4
-授课视频
-5.内存计算--Quiz5
-授课视频
--数据副本及一致性
--节点本地数据存储
-6. NoSQL--Quiz6
-授课视屏
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-7. 流计算--Quiz7