使用Spark 2.0,我发现可以将行的数据帧转换为案例类的数据框。当我尝试这样做的时候,我收到一条消息,表示要导入spark.implicits._
。我遇到的问题是Intellij没有认识到这是一个有效的导入声明,我想知道这是否已经移动,消息是否已经更新,或者我是否没有正确的包裹在我的构建设置中,这是我的build.sbt
libraryDependencies ++= Seq(
"org.mongodb.spark" % "mongo-spark-connector_2.11" % "2.0.0-rc0",
"org.apache.spark" % "spark-core_2.11" % "2.0.0",
"org.apache.spark" % "spark-sql_2.11" % "2.0.0"
)
答案 0 :(得分:63)
没有名为spark.implicits
的包。
此处spark
代表SparkSession。如果您在REPL中,则会话已定义为spark
,因此您只需键入:
import spark.implicits._
如果您已在代码中的某处定义了自己的SparkSession
,请相应地进行调整:
val mySpark = SparkSession
.builder()
.appName("Spark SQL basic example")
.config("spark.some.config.option", "some-value")
.getOrCreate()
// For implicit conversions like converting RDDs to DataFrames
import mySpark.implicits._
答案 1 :(得分:5)
Spark使用了SparkSession的spark
标识符。这就是造成混乱的原因。如果你用类似的东西创建它,
val ss = SparkSession
.builder()
.appName("test")
.master("local[2]")
.getOrCreate()
导入implicits
的正确方法是,
import ss.implicits._
如果这有帮助,请告诉我。欢呼声。