源码中的哲学——通过构建者模式创建SparkSession

简介:

spark2.2在使用的时候使用的是SparkSession,这个SparkSession创建的时候很明显的使用了创建者模式。通过观察源代码,简单的模拟了下,可以当作以后编码风格的参考:

官方使用

import org.apache.spark.sql.SparkSession

val spark = SparkSession
  .builder()
  .appName("Spark SQL basic example")
  .config("spark.some.config.option", "some-value")
  .getOrCreate()

// For implicit conversions like converting RDDs to DataFrames
import spark.implicits._

自己写的小例子,模拟一下:

package xingoo.core

object SparkSessionBuilderExample {
  def main(args: Array[String]): Unit = {
    SparkSession
      .builder()
      .config("a","1")
      .config("b","2")
      .getOrCreate()
  }
}

object SparkSession{
  // 创建者模式
  class Builder{
    def config(key:String, value:String):Builder = {
      println(key+"-->"+value)
      this
    }

    def getOrCreate():Unit = {
      println("创建成功!")
    }
  }

  def builder(): Builder = new Builder
}

很好的风格!

可以得到输出:

a-->1
b-->2
创建成功!
本文转自博客园xingoo的博客,原文链接:源码中的哲学——通过构建者模式创建SparkSession,如需转载请自行联系原博主。
相关文章
|
缓存 分布式计算 Hadoop
Spark 原理_运行过程_概念介绍 | 学习笔记
快速学习 Spark 原理_运行过程_概念介绍
121 0
Spark 原理_运行过程_概念介绍 | 学习笔记
|
分布式计算 大数据 Spark
Spark 入门_独立应用编写|学习笔记
快速学习 Spark 入门_独立应用编写
111 0
Spark 入门_独立应用编写|学习笔记
|
SQL 分布式计算 Spark
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(5)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(5)
169 0
|
SQL 分布式计算 数据处理
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(7)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(7)
117 0
|
SQL 分布式计算 Spark
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(8)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(8)
189 0
|
SQL 分布式计算 Spark
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(9)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(9)
115 0
|
缓存 分布式计算 Spark
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(2)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(2)
140 0
|
SQL 分布式计算 Serverless
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(6)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(6)
86 0
|
分布式计算 Java Spark
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(3)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(3)
232 0
|
SQL 分布式计算 Spark
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(10)
SPARK中的wholeStageCodegen全代码生成--以aggregate代码生成为例说起(10)
171 0
下一篇
无影云桌面