• Spark RDD操作记录(总结一)


    创建List
    intRDD = sc.parallelize(List(1,2,3,4,5))

    过滤包含
    stringRDD.filter(_.contains("a")).collect()

    去重
    stringRDD.distinct.collect()

    RDD拆分
    val sRDD = intRDD.randomSplit(Array(0.4,0.6))

    显示拆分后的RDD
    sRDD(0).collect()

    奇偶区分
    intRDD.groupBy(x => {if (x % 2 == 0) "even" else "old"}).collect()

    并集运算
    intRDD1.union(intRDD2).union(intRDD3).collect()

    ++ 运算
    (intRDD1 ++ intRDD2 ++ intRDD3).collect()

    交集运算
    intRDD1.intersection(intRDD2).collect()

    差集运算
    intRDD1.subtract(intRDD2).collect()

    笛卡尔乘积
    intRDD1.cartesian(intRDD2).collect()

    取第一条数据
    intRDD.first

    取前两条数据
    intRDD.take(2)

    从小到大读前三条
    intRDD.takeOrdered(3)

    从大到小读前三条
    intRDD.takeOrdered(3)(Ordering[Int].reverse)

    统计 intRDD.stats
    最小 min
    最大 max
    stdev 标准偏差
    count 计数
    sum 求和
    mean 平均

    创建范例
    val kvRDD1 = sc.parallelize(List((3,4),(3,6),(5,6),(1,2)))

    列出所有key值
    kvRDD1.keys.collect()

    列出所有的value
    kvRDD1.values.collect()
     
    列出所有key小于5
    kvRDD1.filter{case (key,value) => key < 5}.collect()

    value值平方运算
    kvRDD1.mapValues(x => x * x ).collect()

    按照key小到大排序
    kvRDD1.sortByKey(true).collect()  //可以不传参数

    reduceByKey
    kvRDD1.reduceByKey((x,y) => x+y).collect()  kvRDD1.reduceByKey(_+_).collect()

    join运算
    kvRDD1.join(kvRDD2).collect()

    读取第一条数据的第一个元素
    kvRDD1.first._1

    计算每一个key值的条数
    kvRDD1.countByKey()

    输入key来查找value值
    kvRDD1.lookup(3)

  • 相关阅读:
    水晶报表参数字段在代码中赋值
    存储过程编写经验和优化措施
    积分与排名
    大话处理器
    抽象数学
    开普勒:天空的立法者
    Scalable Face Image Retrieval with IdentityBased Quantization and Multireference Reranking
    配色辞典
    图像识别顶级赛事
    Information Geometry
  • 原文地址:https://www.cnblogs.com/flymercurial/p/7858332.html
Copyright © 2020-2023  润新知