Spark MLlib
简介
MapReduce
对机器学习的算法编写的缺点:
- 反复读写磁盘
- 磁盘
IO
开销大
机器学习算法中具有大量的迭代计算,导致了MapReduce不太适合。
Spark
是基于内存的计算框架,使得数据尽量不存放在磁盘上,直接在内存上进行数据的操作。MLlib只包含能够在集群上运行良好的并行算法。
Stay Foolish Stay Hungry
MapReduce
对机器学习的算法编写的缺点:
IO
开销大机器学习算法中具有大量的迭代计算,导致了MapReduce不太适合。
Spark
是基于内存的计算框架,使得数据尽量不存放在磁盘上,直接在内存上进行数据的操作。MLlib只包含能够在集群上运行良好的并行算法。
Structured Streaming
将实时数据视为一张正在不断添加数据的表。
可以把流计算等同于在一个静态表上的批处理查询,进行增量运算。
在无界表上对输入的查询将生成结果表,系统每隔一定的周期会触发对无界表的计算并且更新结果。
RDD
的DStream
DStream
func
进行聚合K
相同,V
进行合并同时以元组形式表示SparkStreaming
的数据来源广泛,主要有
将实时输入的数据流以时间片(秒级)为单位进行拆分,然后经过Spark
引擎之后,以类似批处理的方式处理每个时间片的数据。
数据分类:静态数据和动态数据。静态数据的常见应用是数据仓库
。利用数据挖掘和OLAP (on-line analytical processing)
分析工具从静态数据中找出对企业有用的数据。
DataFrame
可以翻译成数据框,让Spark具备了处理大规模结构化数据的能力。
RDD
转化方式更加简单,获得了更高的性能mysql
到DF
的转化,支持SQL
查询DF
是一种以RDD
为基础的分布式数据集,提供了详细的结构信息。传统的RDD
是Java
对象集合 Hive
会将SQL
语句转成MapReduce
作业,本身不执行SQL
语句。 基本执行原理如下图:
Hive
在Hadoop
生态圈上运行的,于是出现了在Spark
生态圈的Shark
。
Hive
的解析过程、逻辑执行等相同mapreduce
作业换成了Spark
作业HiveQL
解析换成了Spark
上的RDD
操作根据几个实际的应用案例来学会spark
中map、filter、take
等函数的使用
找出TOP5的值