• rdd相关


    RDD(Resilient Distributed Dataset) 弹性分布式数据集

    不可变的分布式对象集合,每个RDD被分为多个分区,分区运行在集群中的不同节点上。

    1.创建方法:

    1)读取外部数据集

    2)驱动器程序里分发驱动器程序中的对象集合(list/set)

    调用示例:

    import org.apache.spark.SparkContext

    import org.apache.spark.SparkContext._

    val sc = new SparkContext(conf)

    读取外部数据集

    lines = sc.textFile("filename")

    对集合进行并行化(parallelize)

    lines = sc.parallelize(List(1,2,3,4,5))

    2.操作类型

    1)转化操作(transformation)

    由一个RDD生成一个新的RDD

    2)行动操作(action)

    对RDD计算一个结果,将结果返回到驱动器程序中。

    基本RDD

    1.针对各个元素的转化操作

    map():接收一个函数,将函数用于RDD的每个元素,返回新的RDD以及对应元素的值

    filter():接收一个函数,将RDD中满足该函数的元素放入新的RDD中

    val input = sc.parallelize(List(1,2,3,4))

    val result = input.map(x=>x*x)

    println(result.collect().mkString(","))

    常用转化操作:

    map():函数构成新的RDD

    flatMap():函数用于新的RDD,通常用来切分单词

    filter():反馈一个通过传给filter()的函数元素组成的rdd ex: rdd.filter(x=>x!=1)

    distinct():去重

    sample(withReplacement,fraction,[seed]):对rdd采样

    union():生成 一个包含两个rdd中所有元素的rdd,

    intersection():求两个rdd共同的元素的rdd

    subtract():移除一个rdd中的内容

    cartesian():与另一个rdd的笛卡尔积

    常用行动操作:

    reduce():接受一个函数作为参数,比如累加,方便计算元素总和,元素个数etc

    fold():接受一个函数,加上一个初始值作为每个分区第一次调用时的结果

    collect():返回rdd中所有元素

    count():返回元素个数

    countByValue():各元素在rdd中出现的次数

    take(num):返num个元素

    top(m):返回前m个元素

    takeOrdered(num)(ordering):rdd中按提供的顺序返回最前面num个元素

    takeSample(withReplacement,num,[seed]).reduct(func):从rdd中任意返回一些元素

    aggregate(zeroValue)(seqOp,combOp):类似reduct(),通常返回不同类型的函数 

    foreach(func):对rdd中每个元素使用给定的函数

    持久化存储:

    偌rdd.persist() unpersist()

    MEMORY_ONLY

    MEMORY_ONLY_SER

    MEMORY_AND_DISK

    MEMORY_AND_DISK_SER

    DISK_ONLY

  • 相关阅读:
    STL中的栈 P1739 表达式括号匹配
    STL中的队列
    破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988)
    粤语学习笔记(二)万门大学第6课完
    粤语学习笔记(一)
    VerilogHDL学习笔记(一)--来自一个小彩袅
    Eigen学习笔记(一)-----安装
    松耦合和紧耦合
    ProxyPattern
    git的使用以及github
  • 原文地址:https://www.cnblogs.com/supermanwx/p/9111233.html
Copyright © 2020-2023  润新知