zoukankan      html  css  js  c++  java
  • 源码中的哲学——通过构建者模式创建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
    创建成功!
    
  • 相关阅读:
    《Spring_Four》第二次作业 基于Jsoup的大学生考试信息展示系统开题报告
    《Spring_Four》第一次作业:团队亮相
    4.11jsp
    4.7jsp
    3.17jsp
    3.24jsp
    3.10jsp
    3.4软件测试
    回文串
    博客园第二次作业
  • 原文地址:https://www.cnblogs.com/xing901022/p/8043496.html
Copyright © 2011-2022 走看看