Spark的transformation和action算子简介-创新互联-成都快上网建站

Spark的transformation和action算子简介-创新互联

transformation算子

map(func)

返回一个新的分布式数据集,由每个原元素经过func函数处理后的新元素组成

成都创新互联公司拥有一支富有激情的企业网站制作团队,在互联网网站建设行业深耕十余年,专业且经验丰富。十余年网站优化营销经验,我们已为成百上千中小企业提供了网站建设、网站制作解决方案,按需制作,设计满意,售后服务无忧。所有客户皆提供一年免费网站维护!

filter(func)

返回一个新的数据集,由经过func函数处理后返回值为true的原元素组成

flatMap(func)

类似于map,但是每一个输入元素,会被映射为0个或多个输出元素,(因此,func函数的返回值是一个seq,而不是单一元素)

mapPartitions(func)

类似于map,对RDD的每个分区起作用,在类型为T的RDD上运行时,func的函数类型必须是Iterator[T]=>Iterator[U]

sample(withReplacement,fraction,seed)

根据给定的随机种子seed,随机抽样出数量为fraction的数据

pipe(command,[envVars])

通过管道的方式对RDD的每个分区使用shell命令进行操作,返回对应的结果

union(otherDataSet)

返回一个新的数据集,由原数据集合参数联合而成

intersection(otherDataset)

求两个RDD的交集

distinct([numtasks])

返回一个包含源数据集中所有不重复元素的i新数据集

groupByKey([numtasks])

在一个由(K,v)对组成的数据集上调用,返回一个(K,Seq[V])对组成的数据集。默认情况下,输出结果的并行度依赖于父RDD的分区数目,如果想要对key进行聚合的话,使用reduceByKey或者combineByKey会有更好的性能

reduceByKey(func,[numTasks])

在一个(K,V)对的数据集上使用,返回一个(K,V)对的数据集,key相同的值,都被使用指定的reduce函数聚合到一起,reduce任务的个数是可以通过第二个可选参数来配置的

sortByKey([ascending],[numTasks])

在类型为(K,V)的数据集上调用,返回以K为键进行排序的(K,V)对数据集,升序或者降序有boolean型的ascending参数决定

join(otherDataset,[numTasks])

在类型为(K,V)和(K,W)类型的数据集上调用,返回一个(K,(V,W))对,每个key中的所有元素都在一起的数据集

cogroup(otherDataset,[numTasks])

在类型为(K,V)和(K,W)类型的数据集上调用,返回一个数据集,组成元素为(K,Iterable[V],Iterable[W]) tuples

cartesian(otherDataset)

笛卡尔积,但在数据集T和U上调用时,返回一个(T,U)对的数据集,所有元素交互进行笛卡尔积

coalesce(numPartitions)

对RDD中的分区减少指定的数目,通常在过滤完一个大的数据集之后进行此操作

repartition(numpartitions)

将RDD中所有records平均划分到numparitions个partition中


action算子

reduce(func)

通过函数func聚集数据集中的所有元素,这个函数必须是关联性的,确保可以被正确的并发执行

collect()

在driver的程序中,以数组的形式,返回数据集的所有元素,这通常会在使用filter或者其它操作后,返回一个足够小的数据子集再使用

count()

返回数据集的元素个数

first()

返回数据集的第一个元素(类似于take(1))

take(n)

返回一个数组,由数据集的前n个元素组成。注意此操作目前并非并行执行的,而是driver程序所在机器

takeSample(withReplacement,num,seed)

返回一个数组,在数据集中随机采样num个元素组成,可以选择是否用随机数替换不足的部分,seed用于指定的随机数生成器种子

saveAsTextFile(path)

将数据集的元素,以textfile的形式保存到本地文件系统hdfs或者任何其他Hadoop支持的文件系统,spark将会调用每个元素的toString方法,并将它转换为文件中的一行文本

takeOrderd(n,[ordering])

排序后的limit(n)

saveAsSequenceFile(path)

将数据集的元素,以sequencefile的格式保存到指定的目录下,本地系统,hdfs或者任何其他hadoop支持的文件系统,RDD的元素必须由key-value对组成。并都实现了hadoop的writable接口或隐式可以转换为writable

saveAsObjectFile(path)

使用Java的序列化方法保存到本地文件,可以被sparkContext.objectFile()加载
countByKey()
对(K,V)类型的RDD有效,返回一个(K,Int)对的map,表示每一个可以对应的元素个数

foreach(func)

在数据集的每一个元素上,运行函数func,t通常用于更新一个累加器变量,或者和外部存储系统做交互

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:Spark的transformation和action算子简介-创新互联
网页URL:http://kswjz.com/article/igsjp.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流