zoukankan      html  css  js  c++  java
  • RDDs基本操作之Transformations

    逐元素Transformation

    map()

    map()接收函数,把函数应用到RDD的每个元素,返回新的RDD
    举例:

    val lines = sc.parallelize(Array("hello", "spark", "hello", "world")
    val lines2 = lines.map(word => (word,1))
    打印出来
    lines2.foreach(println)
    hello,1
    spark,1
    hello,1
    world,1
    

    filter()

    filter接收函数,返回只包含满足filter()函数的元素的新RDD

    val lines3 = lines.filter(word=>word.contains("hello"))
    lines3.foreach(println)
    hello
    hello
    

    flatMap()

    对每个输入元素,输出多个输出元素。
    flat是压扁的意思,将RDD中元素压扁后返回一个新的RDD。
    举例:
    spark.txt文件中的内容

    val inputs = sc.textFile("spark.txt")
    val lines = inputs.flatMap(line => line.split(" "))
    lines.foreach(print)
    输入如下:
    hello!helloworldhellospark
    

    集合运算

    RDDs支持数字集合的计算,例如并集,交集计算。
    举例:

    val rdd1 = sc.parallelize(Array("hello", "spark", "hello", "world")
    val rdd2= sc.parallelize(Array("hello", "spark", "hi")
    

    运算

    1、去重
    val rdd_distinct=rdd1.distinct()
    2、并集
    val rdd_union = rdd1.union(rdd2)
    3、交集
    val rdd_inter = rdd1.intersection(rdd2)
    4、特别的
    val rdd_sub=rdd1.subtract(rdd2)
    
  • 相关阅读:
    Java基本概念
    Java基础语法
    Java环境的搭建
    elicpse
    常见编译器EOP
    上传突破学习笔记
    认识ollydbg
    160个Crackerme破解
    python基础(1)
    文件上传
  • 原文地址:https://www.cnblogs.com/twodoge/p/10015999.html
Copyright © 2011-2022 走看看