我是靠谱客的博主 霸气夕阳,最近开发中收集的这篇文章主要介绍Spark中RDD的transformation&action,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

###简介

  1. transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD
  2. action是得到一个值,或者一个结果(直接将RDDcache到内存中)
  3. 所有的transformation都是采用的懒策略。如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。

###transformation操作:

map(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集
filter(func) : 对调用filter的RDD数据集中的每个元素都使用func,然后返回一个包含使func为true的元素构成的RDD
flatMap(func):和map差不多,但是flatMap生成的是多个结果
mapPartitions(func):和map很像,但是map是每个element,而mapPartitions是每个partition
mapPartitionsWithSplit(func):和mapPartitions很像,但是func作用的是其中一个split上,所以func中应该有index
sample(withReplacement,faction,seed):抽样  
union(otherDataset):返回一个新的dataset,包含源dataset和给定dataset的元素的集合  
distinct([numTasks]):返回一个新的dataset,这个dataset含有的是源dataset中的distinct的element  
groupByKey(numTasks):返回(K,Seq[V]),也就是hadoop中reduce函数接受的key-valuelist  
reduceByKey(func,[numTasks]):就是用一个给定的reduce func再作用在groupByKey产生的(K,Seq[V]),比如求和,求平均数  
sortByKey([ascending],[numTasks]):按照key来进行排序,是升序还是降序,ascending是boolean类型  
join(otherDataset,[numTasks]):当有两个KV的dataset(K,V)和(K,W),返回的是(K,(V,W))的dataset,numTasks为并发的任务数  
cogroup(otherDataset,[numTasks]):当有两个KV的dataset(K,V)和(K,W),返回的是(K,Seq[V],Seq[W])的dataset,numTasks为并发的任务数  
cartesian(otherDataset):笛卡尔积就是m*n,大家懂的  

###action操作:

reduce(func)://说白了就是聚集,但是传入的函数是两个参数输入返回一个值,这个函数必须是满足交换律和结合律的  
collect():一般在filter或者足够小的结果的时候,再用collect封装返回一个数组  
count():返回的是dataset中的element的个数  
first():返回的是dataset中的第一个元素  
take(n):返回前n个elements,这个士driver program返回的  
takeSample(withReplacement,num,seed):抽样返回一个dataset中的num个元素,随机种子seed
saveAsTextFile(path):把dataset写到一个text file中,或者hdfs,或者hdfs支持的文件系统中,spark把每条记录都转换为一行记录,然后写到file中  
saveAsSequenceFile(path):只能用在key-value对上,然后生成SequenceFile写到本地或者hadoop文件系统  
countByKey():返回的是key对应的个数的一个map,作用于一个RDD  
foreach(func):对dataset中的每个元素都使用func  

转载于:https://my.oschina.net/u/1859996/blog/698281

最后

以上就是霸气夕阳为你收集整理的Spark中RDD的transformation&action的全部内容,希望文章能够帮你解决Spark中RDD的transformation&action所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部