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()
  }
}

四.執行結果

      

五.分析

  管道處理是先進先出的,也就是先進先執行,這只對具體到每條數據而言,不同條數據的執行先后沒有固定的順序。

因此不能根據原始數據的順序確定處理的順序。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM