Spark之RDD

最近又看到spark了,看看电脑上很早以前的集群感觉好多都忘记了,故复习一波。

就先从对程序员来说spark的核心RDD走起。

这篇文章讲的很详细  Spark学习之路 (三)Spark之RDD - 扎心了,老铁 - 博客园

总结

一:RDD可以理解为java里面的方法,函数。

spark集群中的每一个executor(机器)中的每一个task(thread)会处理一个RDD。

二:常用RDD

Transformation:map filter flatMap union groupByKey reduceByKey sortByKey

Action:reduce collect count countByKey

三:worldcount(scala)

val conf =new SparkConf()

val sc =new SparkContext(conf)

sc.textFile("E:\\hello.txt").flatMap(_.split(",")).map((_,1)).reduceByKey(_ + _);

四:依赖关系

窄依赖:父对子 为多对一或者一对一

宽依赖:父对子 为多对多

之所以划分依赖是为了stage(阶段,步骤)做铺垫,将一条线上连续关联的窄依赖作为一个stage,单独的一个宽依赖作为一个stage。整个流程的运行好比一个流水线的工作,每一个RDD对应一个task.

你可能感兴趣的:(Spark之RDD)