使用Spark 2.0,我发现可以将row的数据帧转换为case类的数据帧。当我尝试这样做时,我收到一条消息,声明要导入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"
)发布于 2016-10-11 11:59:06
没有名为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._发布于 2017-06-21 17:45:10
Spark对SparkSession使用了spark标识符。这就是造成混乱的原因。如果你是用这样的东西创建的,
val ss = SparkSession
.builder()
.appName("test")
.master("local[2]")
.getOrCreate()导入implicits的正确方法应该是,
import ss.implicits._如果这有帮助,请告诉我。干杯。
https://stackoverflow.com/questions/39968707
复制相似问题