什么是进口的import spark.implicits._?“隐含”是指某个包吗?如果是这样,为什么我在https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.package的 Scala Api 文档中找不到它?
Scala 允许您将“动态”的东西导入作用域。你也可以这样做:
final case class Greeting(hi: String)
def greet(greeting: Greeting): Unit = {
import greeting._ // everything in greeting is now available in scope
println(hi)
}
Run Code Online (Sandbox Code Playgroud)
该SparkSession实例带有一些您使用该import语句导入到您的范围内的隐式。你得到的最重要的东西是Encoder对DataFrames 和Datasets进行大量操作所必需的s。它还将StringContext您使用$"column_name"符号所必需的范围纳入范围。
该implicits成员是 的一个实例SQLImplicits,其源代码(适用于 2.3.1 版)您可以在此处查看。
通过对象导入是scala的特性,所以api文档中没有对此进行描述。从Apache Spark源代码来看,implicits是一个对象类里面的SparkSession类。该类implicits已扩展SQLImplicits如下:
object implicits extends org.apache.spark.sql.SQLImplicits with scala.Serializable。它SQLImplicits提供了更多功能,例如:
implicits通过通过import spark.implicits._where sparkis导入SparkSession类型对象,可以隐式导入功能。
| 归档时间: |
|
| 查看次数: |
4856 次 |
| 最近记录: |