源码中的哲学——通过构建者模式创建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,如需转载请自行联系原博主。
相关文章
|
2月前
|
SQL 分布式计算 Java
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
119 1
|
缓存 分布式计算 Hadoop
Spark 原理_运行过程_概念介绍 | 学习笔记
快速学习 Spark 原理_运行过程_概念介绍
95 0
Spark 原理_运行过程_概念介绍 | 学习笔记
|
分布式计算 大数据 Spark
Spark 入门_独立应用编写|学习笔记
快速学习 Spark 入门_独立应用编写
87 0
Spark 入门_独立应用编写|学习笔记
|
测试技术 Python
Cypress系列(62)- 改造 PageObject 模式
Cypress系列(62)- 改造 PageObject 模式
221 0
Cypress系列(62)- 改造 PageObject 模式
|
Web App开发 缓存 前端开发
高性能 MobX 模式(part 3)- 用例教程
前面两部分把重点放在了 MobX 基础模块的构建上。用这些模块我们可以开始解决一些现实场景的问题了。这篇文章将会通过一系列的示例来应用我们已经了解的概念。
144 0
|
分布式计算 Java Spark
|
分布式计算 Hadoop Shell
《Spark与Hadoop大数据分析》——3.2 学习Spark的核心概念
本节书摘来自华章计算机《Spark与Hadoop大数据分析》一书中的第3章,第3.2节,作者 [美]文卡特·安卡姆(Venkat Ankam),译 吴今朝,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1931 0