spark相关transformation和action

1、transformation操作 transformation操作会针对已有的RDD创建一个新的RDD。transformation具有lazy特性,即transformation不会触发spark程序的执行,它们只是记录了对RDD所做的操作,不会自发的执行。只有执行了一个action,之前的所有transformation才会执行。 常用的transformation介绍 map :将RDD中的每个元素传人自定义函数,获取一个新的元素,然后用新的元素组成新的RDD。 filter:对RDD中每个元素进行判断,如果返回true则保留,返回false则剔除。 flatMap:与map类似,但是对每个元素都可以返回一个或多个元素。 groupByKey:根据key进行分组,每个key对应一个Iterable。 reduceByKey:对每个key对应的value进行reduce操作。 sortByKey:对每个key对应的value进行排序操作。 join:对两个包含对的RDD进行join操作,每个keyjoin上的pair,都会传入自定义函数进行处理。 cogroup:同join,但是每个key对应的Iterable都会传入自定义函数进行处理。 2、action操作 action操作主要对RDD进行最后的操作,比如遍历,reduce,保存到文件等,并可以返回结果给Driver程序。action操作执行,会触发一个spark job的运行,从而触发这个action之前所有的transformation的执行,这是action的特性。 常用的action介绍: reduce:将RDD中的所有元素进行聚合操作。第一个和第二个元素聚合,值与第三个元素聚合,值与第四个元素聚合,以此类推。 collect:将RDD中所有元素获取到本地客户端(一般不建议使用)。 count:获取RDD元素总数。 take(n):获取RDD中前n个元素。 saveAsTextFile:将RDD元素保存到文件中,对每个元素调用toString方法。 countByKey:对每个key对应的值进行count计数。 foreach:遍历RDD中的每个元素。
posted @ 2019-03-04 10:24  Toby_n  阅读(320)  评论(0编辑  收藏  举报