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)

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mpvue flyio「建议收藏」

    mpvue flyio「建议收藏」https://blog.csdn.net/qq_34239734/article/details/88836320不用改这个,如果改第一个,那么就自动改第二个了在main.js中代码如下importflyfrom’./utils/request’//将fly挂载在全局Vue.prototype.$fly=flyutil…

    2025年10月8日
    4
  • 数据结构(一)线性存储结构[通俗易懂]

    线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。线性结构拥有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的,链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息。线性结构中存在两种操作受限的使用场景,即队列和栈。栈的操作只能在线性表的一端进行,…

    2022年4月15日
    58
  • QQ vx 刷屏神器!!

    QQ vx 刷屏神器!!在电脑上桌面新建一个txt,然后在里面写入下面的代码,写好后把文件的txt格式改为vbs格式即可次数别设太多,会卡死,间隔时间别太短setwshshell=wscript.createobject(“wscript.shell”)wshshell.AppActivate”王择玉”fori=1to2wscript.sleep100wshshell.sendKeys…

    2022年6月12日
    56
  • c++ 动态链接库 资源文件_wsastartup函数头文件

    c++ 动态链接库 资源文件_wsastartup函数头文件原创文章,转载请注明出处。C++Lib和Dll的加载加载Dll1>通过LoadLibary加载,GetProcAddress调用加载Dll1>通过LoadLibary加载,GetProcAddress调用如果加载失败,通过GetLastError()获取失败原因。下面是LoadLibary的示例代码第一步,在.h中声明了staticHMODULEhDLL;#include<Windows.h>//加载的头文件classQIDCardReader:.

    2022年9月30日
    2
  • Python字符串转换为日期时间– strptime()「建议收藏」

    Python字符串转换为日期时间– strptime()「建议收藏」Wecanconvertastringtodatetimeusingstrptime()function.Thisfunctionisavailableindatetimeandtimemodulestoparseastringtodatetimeandtimeobjectsrespectively.我们可以使用strptime()函数将字…

    2022年6月2日
    104
  • Ubuntu安装yum失败

    Ubuntu安装yum失败先看一下虚拟机可以上网;那么联网没有问题;yum-ylistjava*;查看jdk版本;提示yum没有安装;那么先要安装yum;输入rpm-qayum,查看yum的安装情况,rpm也没有安装;输入apt-getinstallyum安装yum,提示权限不足,areyouroot?当前是root用户;在命令前加sudo就对了;sudoapt-getinstallyum;然后提示不能定位yum包;需要先执行apt-getupdate;前面还

    2022年6月16日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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