RDD — flatmap

RDD — flatmapflatmapflatmap简单用法defmain(args:Array[String]):Unit={//设置log级别Logger.getLogger(“org”).setLevel(Level.WARN)valconf=newSparkConf().setAppName(“WordCountDemo”).setMaster(“loca…

大家好,又见面了,我是你们的朋友全栈君。

flatmap

flatmap 简单用法

  def main(args: Array[String]): Unit = { 
   
    //设置log级别
    Logger.getLogger("org").setLevel(Level.WARN)
    val conf = new SparkConf().setAppName("WordCountDemo").setMaster("local")
    val sc = new SparkContext(conf)
    sc.textFile("hdfs://hadoop001:9000/in/word")
      .flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect().foreach(println(_))
    sc.stop()
  }

flatmap 复杂用法

  def main(args: Array[String]): Unit = { 
   
    val spark = SparkSession.builder()
      .config("spark.executor.memory", "2g")
      .appName("WordCount")
      .master("local[6]")
      .getOrCreate()
    val sc = spark.sparkContext
    
    val array = Array((1,"a b c d"),(2,"a b c"),(3,"a b"))
    /** * 第一种写法 */
    val rdd = sc.parallelize(array)
      rdd.flatMap(x => { 
   
        val sub = ArrayBuffer.empty[(Int, String)]
        x._2.split(" ").foreach(e => { 
   
          sub.+=((x._1, e))
        })
        sub.iterator
      }).collect().foreach(println)

    /** * 第二种写法 */
    //rdd.flatMap(x=> x._2.split(" ").map(y =>(x._1,y))).collect().foreach(println)
    sc.stop()
    spark.close()
  }

结果

(1,a)
(1,b)
(1,c)
(1,d)
(2,a)
(2,b)
(2,c)
(3,a)
(3,b)

一块石头一半做成了佛像,一半做成了台阶。台阶不服气的问佛:我们本是一块石头,凭什么人们都踩着我,而去朝拜你呢?佛说: 因为你只挨了一刀,而我却经历了千刀万剐,千锤万凿。台阶沉默了。第二天台阶又来找佛,说:这是我的朋友切菜板,您给个说法?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139838.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号