Spark 2.0缺少火花暗示

时间:2016-10-11 00:27:40

标签: scala apache-spark spark-dataframe

使用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"
)

2 个答案:

答案 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._

如果这有帮助,请告诉我。欢呼声。