【Spark】Spark的常用算子

这篇具有很好参考价值的文章主要介绍了【Spark】Spark的常用算子。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spark的常用算子


Spark 内置算子是指 Spark 提供的具有高性能、高效率和高可靠性的数据操作函数。Spark 内置算子可以帮助我们完成大量的数据预处理、处理和分析任务。其主要包括以下 4 类算子:

转换算子(Transformation):用于将一个 RDD 转换为另一个 RDD,常见的有 map、flatMap、filter 等。

行动算子(Action):用于对 RDD 执行计算,常见的有 reduce、collect、count 等。

键值对算子(PairRDDFunctions):用于处理 K-V 形式的 RDD,常见的有 reduceByKey、groupByKey、sortByKey 等。

文件系统算子(File System):用于进行文件系统的操作,常见的有 textFile、saveAsTextFile、wholeTextFiles 等。

下面简单介绍一下这些内置算子的详细用法:

一、转换算子(Transformation)

map(func): 将原 RDD 中的每个元素传递给函数 func,得到一个新的 RDD。

flatMap(func): 与 map 类似,但每个元素都可以生成多个输出,这些输出被平铺(flattening)成一个新的 RDD。

filter(func): 返回输入 RDD 中通过函数 func 的筛选结果为 true 的元素。

distinct([numTasks])): 返回输入 RDD 中所有不同的元素,可选参数 numTasks 指定任务的数量。

union(otherRDD): 返回对输入 RDD 和参数 RDD 执行联合操作的结果,生成一个新的 RDD,不去重。

intersection(otherRDD)): 返回对输入 RDD 和参数 RDD 执行交集操作的结果,生成一个新的 RDD。

subtract(otherRDD): 返回对输入 RDD 和参数 RDD 执行差集操作的结果,生成一个新的 RDD。

cartesian(otherRDD): 返回对输入 RDD 和参数 RDD 执行笛卡尔积的结果,生成一个新的 RDD。

二、行动算子(Action)

reduce(func): 使用函数 func 组合 RDD 中的所有元素,返回计算结果。

collect(): 将 RDD 中的所有元素都返回给驱动程序程序。

count(): 返回 RDD 中元素的数量。

first(): 返回 RDD 的第一个元素。

take(n): 返回 RDD 的前 n 个元素。

takeSample(withReplacement, num, [seed]): 从 RDD 中随机取样 num 个元素,withReplacement 指定是否允许取样后返回的元素有重复,seed 指定随机数种子。

takeOrdered(n, [ordering]): 返回包含 RDD 前 n 个元素的列表,元素是按顺序排序的。

aggregate(zeroValue, seqOp, combOp): 使用给定的函数对 RDD 的元素进行聚合,seqOp 计算在分区中初始值到中间结果的聚合计算,而 combOp 在节点上对中间结果进行聚合。

fold(zeroValue, func): 与 aggregate 类似,但这里的 seqOp 和 combOp 相同。

foreach(func): 对 RDD 中的每个元素执行指定的函数。

三、键值对算子(PairRDDFunctions)

reduceByKey(func, [numTasks]): 按键值对中的键将数据聚合在一起,并使用给定的函数进行聚合。

groupByKey([numTasks]): 按键值对中的键将数据分组,并生成一个迭代器,该迭代器包含与每个唯一键关联的所有元素。

mapValues(func): 对键值对的值应用给定的函数。

flatMapValues(func): 对键值对的值应用给定的函数,并生成一个迭代器,该迭代器包含每个键的所有结果。

keys(): 返回键值对 RDD 中所有键的列表。

values(): 返回键值对 RDD 中所有值的列表。

sortByKey([ascending], [numTasks]): 对键值对 RDD 中的键进行排序,ascending 指定是否按升序排序,numTasks 指定任务数量。

四、文件系统算子(File System)

textFile(path, [minPartitions]): 读取一个文件或文件系统中的所有文件,并返回表示它们的 RDD。

wholeTextFiles(path, [minPartitions]): 读取一个文件或文件系统中的所有文件,返回两项组成的元组,第一项是文件名,第二项是文件中的内容。

saveAsTextFile(path): 将 RDD 的内容写入一个文本文件。

saveAsSequenceFile(path): 将 RDD 的内容作为 Hadoop SequenceFile 保存。

saveAsObjectFile(path): 将 RDD 的内容序列化成字节并保存到文件中。文章来源地址https://www.toymoban.com/news/detail-515913.html

到了这里,关于【Spark】Spark的常用算子的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HDFS 分布式存储 spark storm HBase

    HDFS 分布式存储 spark storm HBase 分布式结构 master slave name node client 负责文件的拆分 128MB 3份 data node MapReduce 分布式计算 离线计算 2.X之前 速度比较慢 对比spark 编程思想 Map 分 Reduce 合 hadoop streaming Mrjob Yarn 资源管理 cpu 内存 MapReduce spark 分布式计算 RM NM AM 社区版 CDH 什么是Hive 基于

    2024年02月14日
    浏览(29)
  • Spark大数据处理学习笔记(3.2.2)掌握RDD算子

    衔接上文:http://t.csdn.cn/Z0Cfj 功能: reduce()算子按照传入的函数进行归约计算 案例: 计算1 + 2 + 3 + …+100的值 计算1 × 2 × 3 × 4 × 5 × 6 的值(阶乘 - 累乘) 计算1 2 + 2 2 + 3 2 + 4 2 + 5**2的值(先映射,后归约) 功能: collect()算子向Driver以数组形式返回数据集的所有元素。通常对

    2024年02月08日
    浏览(38)
  • Spark大数据分析与实战笔记(第三章 Spark RDD 弹性分布式数据集-02)

    人生很长,不必慌张。你未长大,我要担当。 传统的MapReduce虽然具有自动容错、平衡负载和可拓展性的优点,但是其最大缺点是采用非循环式的数据流模型,使得在迭代计算式要进行大量的磁盘IO操作。Spark中的RDD可以很好的解决这一缺点。 RDD是Spark提供的最重要的抽象概念

    2024年02月22日
    浏览(45)
  • Spark弹性分布式数据集

    1. Spark RDD是什么 RDD(Resilient Distributed Dataset,弹性分布式数据集)是一个不可变的分布式对象集合,是Spark中最基本的数据抽象。在代码中RDD是一个抽象类,代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 每个RDD都被分为多个分区,这些分区运行在集群中

    2024年02月13日
    浏览(36)
  • 2023_Spark_实验十二:Spark高级算子使用

    掌握Spark高级算子在代码中的使用 相同点分析 三个函数的共同点,都是Transformation算子。惰性的算子。 不同点分析 map函数是一条数据一条数据的处理,也就是,map的输入参数中要包含一条数据以及其他你需要传的参数。 mapPartitions函数是一个partition数据一起处理,也即是说,

    2024年02月08日
    浏览(23)
  • 大数据学习06-Spark分布式集群部署

    配置好IP vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改主机名 vi /etc/hostname 做好IP映射 vim /etc/hosts 关闭防火墙 systemctl status firewalld systemctl stop firewalld systemctl disable firewalld 配置SSH免密登录 ssh-keygen -t rsa 下载Scala安装包 配置环境变量 添加如下配置 使环境生效 验证 Spark官网 解压 上

    2024年02月10日
    浏览(42)
  • Spark【Spark SQL(二)RDD转换DataFrame、Spark SQL读写数据库 】

    Saprk 提供了两种方法来实现从 RDD 转换得到 DataFrame: 利用反射机制推断 RDD 模式 使用编程方式定义 RDD 模式 下面使用到的数据 people.txt :         在利用反射机制推断 RDD 模式的过程时,需要先定义一个 case 类,因为只有 case 类才能被 Spark 隐式地转换为DataFrame对象。 注意

    2024年02月09日
    浏览(38)
  • 大数据开发之Spark(RDD弹性分布式数据集)

    rdd(resilient distributed dataset)叫做弹性分布式数据集,是spark中最基本的数据抽象。 代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 1.1.1 rdd类比工厂生产 1.1.2 wordcount工作流程 1、一组分区(partition),即是数据集的基本组成单位,

    2024年01月24日
    浏览(42)
  • Spark中Rdd算子和Action算子--学习笔记

    filter distinct groupBy groupByKey,sortBy,SortByKey rdd之间的连接 collect,take,count()类的聚合算子,saveAsTextFile, 统计算子,countByKey() countByKey().items() countByValue() , countByValue().items() 词频统计 缓存是将数据存储再内存或者磁盘上,缓存的特点是计算结束后缓存自动清空 为什么使用缓存? 提升

    2024年01月16日
    浏览(46)
  • 大数据课程K2——Spark的RDD弹性分布式数据集

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的RDD结构; ⚪ 掌握Spark的RDD操作方法; ⚪ 掌握Spark的RDD常用变换方法、常用执行方法; 初学Spark时,把RDD看做是一个集合类型(类似于Array或List),用于存储数据和操作数据,但RDD和普通集合的区别

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包