- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
count算子;count算子;/01;RDD算子从对数据操作上讲,大致分为两类: 转换(transformations)和行动(action)。
;转换算子: 将一个RDD转换为另一个RDD,这种变换并不触发提交作业,完成作业中间过程处理。
RDD的操作种类有多个,分为:?
map(func)返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成。
mapPartitionsWithIndex(func)类似于mapPartitions,但func带有一个整数参数表示分片的索引值,因此在类型为T的RDD上运行时,func的函数类型必须是(Int, Interator[T]) = Iterator[U]。
;map()和mapPartition()map():每次处理一条数据。
glom将每一个分区形成一个数组,形成新的RDD类型时RDD[Array[T]]
groupBy(func)分组,按照传入函数的返回值进行分组。将相同的key对应的值放入一个迭代器。
distinct([numTasks]))对源RDD进行去重后返回一个新的RDD。默认情况下,只有8个并行任务来操作,但是可以传入一个可选的numTasks参数改变它。
;coalesce(numPartitions)缩减分区数,用于大数据集过滤后,提高小数据集的执行效率。
repartition(numPartitions)根据分区数,重新通过网络随机洗牌所有数据。
flatMap(func)类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)。
;行动算子:将一个RDD进行求值或者输出,这类算子会触发 SparkContext 提交 Job 作业。
将Spark中的行动算子分为两类:
数据运算类,主要用于触发RDD计算,并得到计算结果返回给Spark程序或Shell界面;
数据存储类,用于触发RDD计算后,将结果保存到外部存储系统中,如HDFS文件系统或数据库。
;/02;count算子属于行动算子
def count(): Long
count返回RDD中的元素数量
??? scala?var rdd1 = sc.makeRDD(Array((A,1),(B,2),(C,3)),2)??? rdd1: org.apache.spark.rdd.RDD[(String, String)] = ParallelCollectionRDD[34] at makeRDD at :21??? ???? scala?rdd1.count??? res15: Long = 3
;应用示例:
;1.算子概述1)转换算子2)行动算子2.count算子及示例
文档评论(0)