import spark.implicits._导入了什么?“implant”是否指某个包?如果是,为什么我在https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.package?上的Scala API文档中找不到它
import spark.implicits._
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。
SparkSession
import
Encoder
DataFrame
Dataset
StringContext
$"column_name"
implicits
SQLImplicits
xmjla07d2#
通过对象导入是scala的特性,所以API文档中没有描述。从Apache spark源代码来看,implicits是SparkSession类中的一个对象类。implicits类扩展了SQLImplicits,如下所示:object implicits extends org.apache.spark.sql.SQLImplicits with scala.Serializable。SQLImplicits提供了更多功能,如:1.将scala对象转换为dataset。(通过toDS)1.将scala对象转换为对象框架。(通过toDF)1.将“$name”转换为列。通过导入implicits到import spark.implicits._(其中spark是SparkSession类型的对象),可以隐式导入功能。
object implicits extends org.apache.spark.sql.SQLImplicits with scala.Serializable
spark
2条答案
按热度按时间gijlo24d1#
Scala允许你“动态地”将东西导入作用域。你也可以这样做:
字符串
SparkSession
示例带有沿着一些你用import
语句导入到作用域中的implications。你得到的最重要的东西是Encoder
s,这是对DataFrame
s和Dataset
s进行大量操作所必需的。它还将StringContext
带入作用域,这是你使用$"column_name"
表示法所必需的。implicits
成员是SQLImplicits
的一个示例,其源代码(对于2.3.1版)可以查看here。xmjla07d2#
通过对象导入是scala的特性,所以API文档中没有描述。从Apache spark源代码来看,
implicits
是SparkSession
类中的一个对象类。implicits
类扩展了SQLImplicits
,如下所示:object implicits extends org.apache.spark.sql.SQLImplicits with scala.Serializable
。SQLImplicits
提供了更多功能,如:1.将scala对象转换为dataset。(通过toDS)
1.将scala对象转换为对象框架。(通过toDF)
1.将“$name”转换为列。
通过导入
implicits
到import spark.implicits._
(其中spark
是SparkSession
类型的对象),可以隐式导入功能。