spark中flatMap函数用法–spark学习(基础)「建议收藏」

spark中flatMap函数用法–spark学习(基础)「建议收藏」说明在spark中map函数和flatMap函数是两个比较常用的函数。其中map:对集合中每个元素进行操作。flatMap:对集合中每个元素进行操作然后再扁平化。理解扁平化可以举个简单例子valarr=sc.parallelize(Array((“A”,1),(“B”,2),(“C”,3)))arr.flatmap(x=>(x._1+x._2)).foreach(println)输出

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

说明

在spark中map函数和flatMap函数是两个比较常用的函数。其中
map:对集合中每个元素进行操作。
flatMap:对集合中每个元素进行操作然后再扁平化。
理解扁平化可以举个简单例子

val arr=sc.parallelize(Array(("A",1),("B",2),("C",3)))
arr.flatmap(x=>(x._1+x._2)).foreach(println)

输出结果为

A
1
B
2
C
3

如果用map

val arr=sc.parallelize(Array(("A",1),("B",2),("C",3)))
arr.map(x=>(x._1+x._2)).foreach(println)

输出结果

A1
B2
C3

所以flatMap扁平话意思大概就是先用了一次map之后对全部数据再一次map。

实际使用场景

这个场景是我曾经在写代码过程中遇到的难题,在字符串中如何统计相邻字符对出现的次数。意思就是如果有A;B;C;D;B;C字符串,则(A,B),(C,D),(D,B)相邻字符对出现一次,(B,C)出现两次。
如有数据

A;B;C;D;B;D;C
B;D;A;E;D;C
A;B

统计相邻字符对出现次数代码如下

data.map(_.split(";")).flatMap(x=>{
      for(i<-0 until x.length-1) yield (x(i)+","+x(i+1),1)
    }).reduceByKey(_+_).foreach(println)

输出结果为

(A,E,1)
(E,D,1)
(D,A,1)
(C,D,1)
(B,C,1)
(B,D,2)
(D,C,2)
(D,B,1)
(A,B,2)

此例子就是充分运用了flatMap的扁平化功能。

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

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

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


相关推荐

  • PyCharm全局搜索Ctrl + Shift + F无反应的解决办法

    PyCharm全局搜索Ctrl + Shift + F无反应的解决办法近期发现PyCharm的一个全局搜索的功能,非常实用;但是与window输入法的快捷键冲突导致无效,此教程详细介绍如何解决此问题。

    2022年5月6日
    175
  • KDE自动登录

    KDE自动登录

    2021年8月18日
    70
  • 线程池的三种队列区别:SynchronousQueue、LinkedBlockingQueue 和ArrayBlockingQueue[通俗易懂]

    线程池的三种队列区别:SynchronousQueue、LinkedBlockingQueue 和ArrayBlockingQueue[通俗易懂]使用方法:privatestaticExecutorServicecachedThreadPool=newThreadPoolExecutor(4,Runtime.getRuntime().availableProcessors()*2,0,TimeUnit.MILLISECONDS,newSynchronousQueue&lt;&gt;(),r-&gt;ne…

    2022年6月22日
    27
  • 御用导航提示提醒_又现神操作!广西两车主开车走楼梯,车主:导航让我走的!…[通俗易懂]

    御用导航提示提醒_又现神操作!广西两车主开车走楼梯,车主:导航让我走的!…[通俗易懂]大家有没有被导航坑坏的经历?近日柳州市某小区内有两辆小轿车跟着导航走结果都开到了同一楼梯处卡在了同样的地方……2月12日上午,在柳州市柳江区柳西新城小区,一司机开车跟着导航走,结果将车子开到楼梯上了。据网友描述,事故发生在该小区31栋平台上,一辆红色小轿车的四个车轮都在楼梯上,走下楼梯直达小区门口。随后,司机用其他车子把他的汽车拉起来,自己也没有受伤。无独有偶此前就发生过一样的事…

    2022年5月7日
    171
  • pycharm清缓存_pycharm安装包很慢

    pycharm清缓存_pycharm安装包很慢解决pycharm缓存文件问题方法一方法二使用pycharm一段时间后,C盘空间也越来越小。这是因为pycharm在C盘生成了大量的缓存文件。解决C盘占用过大,有两个方法:方法一:直接删除pycharm缓存文件(暴力有效)方法二:更改缓存文件路径方法一content.dat.storageData是pycharm的缓存文件,动辄几个G,直接将其删除即可。不会影响pycharm使用。缺点就是每隔一段时间要记得清理,否则C盘可能就要爆炸。content.dat.storageData文件一般存

    2022年8月28日
    15
  • mysql截取前几个字符串_mysql 截取字符串 函数[通俗易懂]

    mysql截取前几个字符串_mysql 截取字符串 函数[通俗易懂]文章摘取自http://www.cnblogs.com/zdz8207/p/3765073.html练习截取字符串函数(五个)mysql索引从1开始一、mysql截取字符串函数1、left(str,index)从左边第index开始截取2、right(str,index)从右边第index开始截取3、substring(str,index)当index>0从左边开始截取直到结束当ind…

    2022年6月9日
    95

发表回复

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

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