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

  • 相关阅读:
    The Collections Module内建collections集合模块
    生成器接受和返还功能在执行过程中的详解以及生成器实现协同
    写python中的装饰器
    windows下载Mysql-python
    分别用单线程和多线程运行斐波那契、阶乘和累加和
    TCP客户端和服务器间传输数据遇到的TypeError: a bytes-like object is required, not 'str'问题
    python的property属性
    python的伪私有属性
    使用栈实现中缀表达式转为后缀表达式和后缀表达式的求解
    公众帐号如何向用户发送emoji表情(php版,附emoji编码表)
  • 原文地址:https://www.cnblogs.com/csj007523/p/8288884.html
Copyright © 2011-2022 走看看