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)
    
  • 相关阅读:
    K8s(2)-部署应用
    Docker-常用命令(7)
    Docker-堆栈stack(6)
    Docker-集群swarm(5)
    Docker-服务(4)
    Docker的概念术语(2)
    k8s(1)-使用kubeadm安装Kubernetes
    Celery-分布式任务队列
    使用Python管理压缩包
    jQuery基础
  • 原文地址:https://www.cnblogs.com/twodoge/p/10015999.html
Copyright © 2011-2022 走看看