热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

flatmap与map怎么都理解不了,multimap和map区别

一、写在前面scala中map和flatmap的区别可以用一句话进行总结,原始RDD假如是10行,经过map操作后依旧是10行,但是flatmap后会˃10行map是对每一行进行处


一、写在前面


scala中map和flatmap的差异可以用一句话来概括,如果原来的RDD假设为10行,则经过map操作仍然是10行,但flatmap后=10行


map对各行进行处理,flatmap对各行进行处理后,如果处理结果长度为1,则与map操作相同; 如果处理后是List或Array类型,则该List或Array的每个元素都是一行


本文有两个非常好的例子: https://blog.csdn.net/shenshen deai/article/details/57081673


scalavalrdd=sc.parallelize (list (' coffee panda )、' happy panda ), ' happiest panda party ' ) (rdd : org.Apache.spark.rdd.rdd [ string ]=parallelcollectionrdd [0] atparallelellelizeatcoate=array(coffeePanda,happy panda,happiestpandaparty (scalar DD.flat map ) x=x.split (' ' ) ).collectres 13360阵列panda party ) scalavalrdd1=sc.parallelize (list (1,2,3, 3 ) rdd 1: org.Apache.spark.rdd.rdd [ int ]=parallelcollectionrdd [3] atparallelizeatconsole 336024 scalar DD 1.3 . 4 ) scalardD1.flatmap(x=x.to )3) ).collectres 3360 array (iint ) ) ) 65 )


在网上可以找到很多这样小的例子,但实际处理中处理了很多RDD的密钥-值对,所以以下是一些例子


//定义一个键值对RDD,长度只有一行,足以说明具体情况valtmp=list (),Array ),11.0,25.0极速赛车1天赚1000方法offeePanda,happy panda,happiestpandaparty (scalar DD.flat map ) x=x.split (' ' ) ).collectres 13360阵列panda party ) scalavalrdd1=sc.parallelize (list (1,2,3, 3 ) rdd 1: org.Apache.spark.rdd.rdd [ int ]=parallelcollectionrdd [3] atparallelizeatconsole 336024 scalar DD 1.3 . 4 ) scalardD1.flatmap(x=x.to )3) ).collectres 3360 array (iint ) ) ) 65 )


在网上可以找到很多这样小的例子,但实际处理中处理了很多RDD的密钥-值对,所以以下是一些例子


//定义一个键值对RDD,长度只有一行,足以说明具体情况valtmp=list (),Array ),11.0,25.0 ),1 ) 2511第二,长度11 ),第(2533第二,) 0 ) ) ) ) valtmp1=sc.parallelize(tmp ).repartition(1) list (imei _ Expo (0) ) 652 map与flatmap的区别valtmp ) _._2让我们分别比较一下imei_Expo(0).split ()、'() )/Scalatmp2.take(10 ).Foreach(println )/11.0//25.0 valtmp2=tmp1. map (t=valimei _ Expo=)。由逗号组成的字符串list(imei_expo(0(0).split )、', ')、0 )、imei_Expo )0).split )、'()1) }//scala tmp2.count )//RES 63: lOng=1//days _ keyword cuts 因此,最后的tmp2的长度也是3 valtmp2=tmp1. flat map { t=valimei _ Expo=t._2. filter (t=t._3==1).map(_._2 ) ) ) ) ) ) 65长度为1 val days _ keyword cuts=t._2. filter (t=t._3==0).map(._1) /长度为多个days _ 1


推荐阅读
  • 本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了如何使用OpenXML按页码访问文档内容,以及在处理分页符和XML元素时的一些挑战。同时,还讨论了基于页面的引用框架的局限性和超越基于页面的引用框架的方法。最后,给出了一个使用C#的示例代码来按页码访问OpenXML内容的方法。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
author-avatar
jwbnmbnm
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有