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

map与mapPartitions

区别在于sc.map是将RDD下的所有行数据统计处理。而sc.mapPartitions是按RDD分区进行数据统计处理。测试一下:valdatasc.parallel

区别在于sc.map是将RDD下的所有行数据统计处理。而sc.mapPartitions是按RDD分区进行数据统计处理。

测试一下:

val data = sc.parallelize(1 to 6,3)
def mapTest(param1:Int):Int={println("by map,data:"+param1)param1*2
}def mapPartitionsTest(listParam:Iterator[Int]):Iterator[Int]&#61;{println("by partition:")var res &#61; for(param<-listParam) yield param*2res
}
data.map(mapTest).collect
data.mapPartitions(mapPartitionsTest).collect

map输出的是6行记录&#xff0c;也就是说一行数据一条记录。

mapPartitions输出的是3行记录&#xff0c;也就是说一个分区一次处理。

 

另外我在spark-shell写自定义方法时发现有个问题&#xff1a;

def mapPartitionsTest(listParam:Iterator[Int]):Iterator[Int]&#61;{println("by partition:")var res &#61; for(param<-listParam) {yield param*2}res
}

如果我这么写yield&#xff0c;会报 illegal start of statement这个错误&#xff0c;和我说声明的不合法。 奇怪&#xff0c;试了办法没有找到原因&#xff0c;最后把大括号去掉就没有问题了



推荐阅读
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 如何在Spark数据排序过程中有效避免内存溢出(OOM)问题
    本文深入探讨了在使用Spark进行数据排序时如何有效预防内存溢出(OOM)问题。通过具体的代码示例,详细阐述了优化策略和技术手段,为读者在实际工作中遇到类似问题提供了宝贵的参考和指导。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 深入理解Spark框架:RDD核心概念与操作详解
    RDD是Spark框架的核心计算模型,全称为弹性分布式数据集(Resilient Distributed Dataset)。本文详细解析了RDD的基本概念、特性及其在Spark中的关键操作,包括创建、转换和行动操作等,帮助读者深入理解Spark的工作原理和优化策略。通过具体示例和代码片段,进一步阐述了如何高效利用RDD进行大数据处理。 ... [详细]
  • 深入解析Spring Boot源码的序章
    本系列文章旨在深入解析Spring Boot的源代码,分享笔者在学习过程中的心得与体会。内容涵盖核心源码分析,可能会对初学者造成一定理解难度,建议读者结合笔者提供的详细注释进行阅读,以获得更好的学习体验。 ... [详细]
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • Candyland的糖果公园以其独特的结构吸引了众多喜爱糖果的小朋友。公园内设有多个游览点,每个点不仅景色宜人,还提供免费的糖果。这些游览点通过复杂的路径连接,形成了一棵包含n个节点的树状结构。为了优化游客体验,公园管理团队采用了一种基于树上动态修改的莫队算法,有效提升了糖果发放和游玩项目的管理效率。 ... [详细]
author-avatar
fdsafjlkjgklg_431
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有