Spark之Pipeline处理模式

一.简介

  Pipeline管道计算模式:只是一种计算思想,在数据处理的整个流程中,就想水从管道流过一下,是顺序执行的。

二.特点

  1.数据一直在管道中,只有在对RDD进行持久化【cache,persist...】或shuffle write时才会落地。

  2.管道中的处理也是懒加载的,只有遇到action算子之后才会执行。

三.代码验证

package big.data.analyse.scala.pipeline

import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.SparkSession /**
* Created by zhen on 2019/4/4.
*/
object RDDPipelineAnalyse { Logger.getLogger("org").setLevel(Level.INFO) // 设置日志级别 def main(args: Array[String]) {
val spark = SparkSession.builder().appName("检测spark数据处理pipeline")
.master("local[2]").getOrCreate() val sc = spark.sparkContext
val rdd = sc.parallelize(Array(1,2,3,4,5,6)) println("rdd partition size : " + rdd.partitions.length)
val rdd1 = rdd.map{ x => {
println("map--------"+x)
x * 10
}}
val rdd2 = rdd1.filter{ x => {
println("fliter========"+x)
true
} } rdd2.collect()
sc.stop()
}
}

四.执行结果

  Spark之Pipeline处理模式  Spark之Pipeline处理模式  Spark之Pipeline处理模式

五.分析

  管道处理是先进先出的,也就是先进先执行,这只对具体到每条数据而言,不同条数据的执行先后没有固定的顺序。

因此不能根据原始数据的顺序确定处理的顺序。

上一篇:ABAP开发需要养成的习惯—处理规范,日期,sort,改结构


下一篇:Django框架之模板继承和静态文件配置