What is imported with import spark.implicits._
? Does "implicits" refer to some package? If so, why could I not find it in the Scala Api documentation on https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.package?
Scala allows you to import "dynamically" things into scope. You can also do something like that:
final case class Greeting(hi: String)
def greet(greeting: Greeting): Unit = {
import greeting._ // everything in greeting is now available in scope
println(hi)
}
The SparkSession
instance carries along some implicits that you import in your scope with that import
statement. The most important thing that you get are the Encoder
s necessary for a lot of operations on DataFrame
s and Dataset
s. It also brings into the scope the StringContext
necessary for you to use the $"column_name"
notation.
The implicits
member is an instance of SQLImplicits
, whose source code (for version 2.3.1) you can view here.