用Scala完成SparkConf的链式

2019-05-03  本文已影响0人  喵星人ZC

SparkConf2

package com.soul.bigdata.scala.scala02

import java.util.concurrent.ConcurrentHashMap

class SparkConf2 {
  private[this] var master: String = _
  private[this] var appName: String = _

  private var setting = new ConcurrentHashMap[String, String]()

  def setMaster(master: String): SparkConf2 = {
    //    this.master = master
    //
    //    this

    //写了set方法 上面的写法就不适用了,不然取不到值
    set("spark.master", master)
  }

  def setAppName(name: String): SparkConf2 = {
    //    this.appName = name
    //
    //    this

    set("spark.app.name", name)
  }


  private[this] def set(key: String, value: String): SparkConf2 = {
    setting.put(key, value)

    this

  }

  def printInfo(): Unit = {
    //    println(this.master + " : " + this.appName)

    val master = setting.get("spark.master")
    val appName = setting.get("spark.app.name")
    println(master + " : " + appName)
  }
}

测试SparkConf2App

package com.soul.bigdata.scala.scala02

object SparkConf2App {
  def main(args: Array[String]): Unit = {

    val conf2 = new SparkConf2
    conf2.setAppName("Customizer SparkConf2").setMaster("local[2]")

    conf2.printInfo()

  }

}

image.png 图解RDD.png
上一篇 下一篇

猜你喜欢

热点阅读