美文网首页
Scala implicit

Scala implicit

作者: 小样do | 来源:发表于2019-01-24 10:50 被阅读0次

implicit paramter

object ops extends App {

  def add(implicit v: Int) = 1 + v
  implicit val value = 2

  println(add)
}

implicit function

扩展DataFrame方法,新增aMethod,bMethod两个方法

class SqlJson(dataFrame: DataFrame) {
  def aMethod: String = dataFrame.head().getAs[String]("name")

  def bMethod: String = dataFrame.head().getAs[String]("age")
}

object sqlJsonParsing {
  implicit def aMethod(dataFrame: DataFrame) = new SqlJson(dataFrame)
}

object ops extends App {

  val spark = SparkSession
    .builder
    .appName(Test.getClass.getSimpleName)
    .master("local[*]")
    .getOrCreate()

  import sqlJsonParsing._

  val df = spark.createDataFrame(Seq(("a", 11), ("b", 12), ("c", 13))).toDF("name", "age")
  println(df.aMethod)
}


implicit玩法很多,如果开发过程估计团队会做好规范吧,不然真的很麻烦

相关文章

网友评论

      本文标题:Scala implicit

      本文链接:https://www.haomeiwen.com/subject/cecyjqtx.html