【spark 学习笔记】Spark学习笔记精华(1)

好记性不如烂笔头,顺便就开始用手机练习打字了,也分享给感兴趣的朋友学习下。


1.take可以查看RDD中前面几个元素,而且代价很小。

rdd.take(5)

2.可以用takeSample对数据进行采样,它的第一个参数表示是否允许重复采样。

rdd.takeSample(true,3)

3.top返回数据集中按给定ordering方式排序的最大的k条记录,许多场景都要用到它,比如对每条记录打分之后,检查得分最高的记录。

rdd.top(3)(ordering.by(_._2))

4.与top正好相反,takeordered返回最小的记录。

rdd.takeordered(3)(ordering.by(_._2))

5.sample函数常用于在一系列处理过程中生成分布式数据集。它第一个参数支持重复采样和非重复采样,第二个参数它接收一个表示采样比例的参数。

rdd.sample(true,0.6)

6.randomSplit返回多个RDD,它们合在一起就是父RDD,这个函数常用于将数据集分为训练集和测试集。

fullData.cache()
val (train,test)=fullData.randomSplit(Array(0.6,0.4))

7.spark的累加器用于在作业运行的同时收集某些统计信息,每个任务执行时能增加累加器的值,驱动程序也能读取累加器的值。如果没有累加器,要得到相同的结果,就需要缓存RDD并且需要在RDD上运行另一个行动。有了累加器,这样得到结果的效率就大大提高,从这个意义来看累加器是一种优化。


8.若想会写spark程序,就必须理解spark的转换,行动和RDD,但若想写好spark程序,就必须理解spark的底层执行模型,只有这样才能领悟spark程序的性能特点,才能在程序出错或者运行缓慢的时候进行调试,才能理解spark的用户接口。

9.一个spark程序由一个驱动程序进程和执行程序进程组成,对于spark-shell来说,这个驱动程序进程就是与用户交互的进程。执行程序进程负责以任务的形式执行作业,同时也负责根据用户要求将数据存入缓存。

10.执行模型的最上层是作业,在spark应用程序内调用行动时会触发spark作业来执行行动。要确认作业的基本信息,spark会检查行动的RDD依赖关系图并生成执行计划,执行计划从依赖关系中最靠前的RDD开始,将依赖关系路径上的RDD全部汇集起来,以得到行动的结果。

11.spark文件格式常使用textFile,Avro和Parquet分别是hadoop集群上用于存储数据的行式和列式格式。

12.Mlib在Spark之上实现了一组机器学习算法,MLlib把数据表示为稀疏或者稠密的vector对象,它提供了操作Matrix和RowMatrix对象的轻量级线性代数功能。Matrix表示本地矩阵,而RowMtrix表示向量的分布式集合。

13.Spark Streaming 的工作原理是在小时间间隔里对数据进行汇总从而形成小批量,然后在小批量数据上运行作业。

14.Spark SQL 基于spark引擎对HDFS上的数据集或者已有的RDD执行SQL查询,有了SparkSQL就能在Spark程序里用sql语句操作数据了,是不是很开森。

15.sparkSQL的核心数据结构是schemaRDD,包含模式信息,模式信息给出了每列的名称和类型。

16.GraphX是spark的子项目,基于spark引擎进行图计算,图算法可用于研究社交网络中的用户关系,GraphX用两个RDD(顶点RDD和边RDD)来表示图。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页