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)


相关推荐

  • java如何打印数组的值,Java打印数组元素的值[通俗易懂]

    java如何打印数组的值,Java打印数组元素的值[通俗易懂]本篇文章帮大家学习java打印数组元素的值,包含了Java打印数组元素的值使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。以下实例演示了如何通过重载MainClass类的printArray方法输出不同类型(整型,双精度及字符型)的数组:publicclassMainClass{publicstaticvoidprintArray(Integer[…

  • java高级工程师面试题_java高级工程师面试题及答案解析「建议收藏」

    java高级工程师面试题_java高级工程师面试题及答案解析「建议收藏」面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来看看小编精心整理的一些java高级工程师面试题及答案吧。一、堆的年轻代和老年代怎么理解?堆的年轻代大则老年代小,GC少,但是每次时间会比较长。年轻代小则老年代大,会缩短每次GC的时间,但是次数频繁。可以让老年代尽量缓存常用对象,JVM默认年轻代和老年代的大小比例为1:2,。观察峰值老年代内存,不影响fullG…

  • 什么是PMF?

    什么是PMF?PMF是ProductMarketFit的简写,是指产品和市场达到最佳的契合点,你所提供的产品正好满足市场的需求,令客户满意,这是创业成功的第一步。PMF如何实现PMF金字塔模型PMF金字塔模型“PMF金字塔模型”是一个可操作的模型,它用5个关键要素定义了PMF的问题。在这个层级模型中,每一个要素就是金字塔的一层,并且直接与它上下层相关联。从下到上,这5层依次是:你的目标用户,你用户未被满足的需求,你的价值主张,产品的功能集,你的用户体验(UX)。精益产品开发流程是建立在P.

  • BeanUtils_BeanUtils

    BeanUtils_BeanUtilsBeanUtils类依赖的jar包注意:其中第二个包一定是commons-collections-xxx.jar,之前使用了commons-collectionsx-xxx.jar在web上显示未找到类BeanUtils类当中的主要方法populate(Objectbean,Map<String,?extendsObject>properties):可以将pr…

  • mongovue mysql_mongo客户端mongoVUE的使用「建议收藏」

    mongovue mysql_mongo客户端mongoVUE的使用「建议收藏」一、先创建一张mongo表,右击已创建的数据库test,点击addcollection..输入CollectionName,点击ok;二、在创建的表中新增列与数据,右击表选择Insertdocument点击Insert,刷新表。三、查询数据右击表格,点击Find1、查询日期的方式需要在{Find}框中写{“endDate”:ISODate(“2013-12-30T16:00:00Z”)}这样才…

  • java populate_BeanUtils 以及BeanUtils.populate使用[通俗易懂]

    java populate_BeanUtils 以及BeanUtils.populate使用[通俗易懂]ApacheJakartaCommons项目非常有用。我曾在许多不同的项目上或直接或间接地使用各种流行的commons组件。其中的一个强大的组件就是BeanUtils。我将说明如何使用BeanUtils将local实体bean转换为对应的value对象:BeanUtils.copyProperties(aValue,aLocal)上面的代码从aLocal对象复制属性到aValue对象。它相…

发表回复

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

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