spark2.2在使用的時候使用的是SparkSession,這個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
創建成功!