scala spark.implicits._导入了什么?

nnsrf1az  于 5个月前  发布在  Scala
关注(0)|答案(2)|浏览(50)

import spark.implicits._导入了什么?“implant”是否指某个包?如果是,为什么我在https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.package?上的Scala API文档中找不到它

gijlo24d

gijlo24d1#

Scala允许你“动态地”将东西导入作用域。你也可以这样做:

final case class Greeting(hi: String)

def greet(greeting: Greeting): Unit = {
  import greeting._ // everything in greeting is now available in scope
  println(hi)
}

字符串
SparkSession示例带有沿着一些你用import语句导入到作用域中的implications。你得到的最重要的东西是Encoder s,这是对DataFrame s和Dataset s进行大量操作所必需的。它还将StringContext带入作用域,这是你使用$"column_name"表示法所必需的。
implicits成员是SQLImplicits的一个示例,其源代码(对于2.3.1版)可以查看here

xmjla07d

xmjla07d2#

通过对象导入是scala的特性,所以API文档中没有描述。从Apache spark源代码来看,implicitsSparkSession类中的一个对象类。implicits类扩展了SQLImplicits,如下所示:object implicits extends org.apache.spark.sql.SQLImplicits with scala.SerializableSQLImplicits提供了更多功能,如:
1.将scala对象转换为dataset。(通过toDS)
1.将scala对象转换为对象框架。(通过toDF)
1.将“$name”转换为列。
通过导入implicitsimport spark.implicits._(其中sparkSparkSession类型的对象),可以隐式导入功能。

相关问题