spark 学习总结

 

作者: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的机器学习,在集群上跑的算法必须是专门写的分布式算法

posted @ 2018-01-15 17:07  大树2  阅读(394)  评论(0编辑  收藏  举报