作者:csj
更新时间:01.15
email:59888745@qq.com
说明:因内容较多,会不断更新 xxx学习总结;
回主目录:2017 年学习记录和总结
1 安装spark及简介
spark 是用scala语言编写的一套分布式内存计算系统,他的核心抽象模型是RDD(弹性分布式数据集),围绕rdd构件了一系列分布式API
可以直接对数据集进行分布式处理。 相对于mapreduce上的批量计算,跌代计算,以及基于hive的sql查询,spark可以带来1到2个数量级的效力提 升。
spark shell
shark:sql spark
spark streaming
MLLIB
GRAPHX
2.spark shell
加载text文件
spark shell 运行
3.spark 应用
用sbt构建spark作业
用maven构建spark作业
4.create sparkcontext
1.读取一个外部数据集,读取外部数据及时需要用到SparkContext.textFile()
lines = sc.textFile("README.md")
2.在内存中对一个集合进行并行化(parallelize)
A = [1,2,3,4,5]
lines = sc.parallelize(A)
3. RDD的操作命令很多,
Transformation操作:包括map(),filter()等
Action操作:reduce(),fold(),aggregate()等。
4.常见的Transformation操作:
map( )和flatMap( )的联系和区别
map( ):接收一个函数,应用到RDD中的每个元素,然后为每一条输入返回一个对象。
filter( ):接收一个函数,将函数的元素放入新的RDD中返回。
flatMap( ):接收一个函数,应用到RDD中的每个元素,返回一个包含可迭代的类型(如list等)的RDD,可以理解为先Map(),后flat()
scala
java和scala共享API
5.load and save data
load DATA
save Data
Link
6. RDD
java和scala操作RDD
python 操作RDD
7.spark-Hive
Hive/Shark
install,run,load Shark
HiveQL
8.test
java和scala test
python test
9.技巧
并发,内存使用,垃圾回收,序列化等
------------------remark-------------------
Spark的基本概念和RDD的特性以及一些简单的命令
1.RDD: 不可变, 分布式
2.RDD支持两种操作:
a.Tansformation(转化操作):返回值新的RDD还是一个RDD. 如map()接收一个函数,应用到RDD中的每个元素,filter()接收一个函数,将函数的元素放入新的RDD中返回等
b.Action(行动操作):返回值不是一个RDD, 如count(),first(),reduce(),fold(),aggregate()
从一个RDD转换生成另一个RDD的操作不是马上执行,只是记录下来,只有等到有Action操作是才会真正启动计算,将生成的新RDD写到内存或hdfs里,不会对原有的RDD的值进行改变
3.create RDD:
a.读取一个外部数据集
b.在内存中对一个集合进行并行化(parallelize) 1 A = [1,2,3,4,5] 2 lines = sc.parallelize(A)
读取外部数据及时需要用到SparkContext.textFile()/lines = sc.textFile("README.md")
3.1 如何向Spark传递函数:简单的函数:lambda表达式/ def函数
键值对操作、数据的读取和保存以及累加器、广播变量等
4. 键值对(PaiRDD)
4.1创建: pairs = lines.map(lambda x:(x.split(" ")[0],x))
4.2 键值对转化(Transformation): 有reduceByKey,foldByKey(),combineByKey()等,与普通RDD中的reduce()、fold()、aggregate()等类似,只不过是根据键来进行操作
4.3行动操作(Action)
5. 数据的读取与保存:txt,json,csv,sf/Hadoop,file
6. 累加器: 对信息进行聚合
广播变量
数值RDD的操作:count(),mean(),sum(),max(),min()
Spark的运行过程(本地+集群),性能调优以及Spark SQL相关的知识
7. Spark的运行架构以及在集群上的配置:驱动器节点/执行器节点/集群管理器(启动独立集群管理器, 提交应用, 配置资源用量,):
8.Spark SQL性能: 是内存式的列式存储,即Parquet格式,不仅节约了缓存时间,而且尽可能的减少了后续查询中针对某几个字段时的数据读取。
Spark Streaming 和MLlib方面的内容
9.Spark Streaming
DStream •概念:离散化流(discretized stream),是随时间推移的数据。由每个时间区间的RDD组成的序列。DStream可以从Flume、Kafka或者HDFS等多个输入源创建。
•操作:转换和输出,支持RDD相关的操作,增加了“滑动窗口”等于时间相关的操作。
10.基于MLlib的机器学习,在集群上跑的算法必须是专门写的分布式算法