zoukankan      html  css  js  c++  java
  • 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的机器学习,在集群上跑的算法必须是专门写的分布式算法

  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/csj007523/p/8288884.html
Copyright © 2011-2022 走看看