我正在尝试使用spark-sql但我导入
import org.apache.spark.sql.{Row, SparkSession}
收到以下错误:
object sql is not a member of package org.apache.spark
以下是我的详细信息:
Spark版本:1.6.2 Scala版本:2.11.8 sbt版本:0.13.16
这是我的build.sbt文件:
name := "sbt_demo"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.2"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.2"
注意:Stack Overflow中存在同样问题的另一个问题,但是接受的答案对我没有帮助。这就是为什么我要再问一次。
答案 0 :(得分:0)
你需要在sbt
的解析器中使用maven central。如果在代理后面,请为SBT正确设置代理。
另外,在spark 1.6.2中,没有SparkSession
...你应该使用SQLContext
,或者移动到2.x
答案 1 :(得分:0)
对于sbt,您可以使用
"org.apache.spark" %% "spark-sql" % "1.6.2" % "provided",
对于Maven
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.6.2</version>
</dependency>
在创建数据帧之前使用下面的导入。在你的代码中
import sqlContext.implicits._
val df = sqlContext.createDataFrame(rows, schema)
答案 2 :(得分:0)
我遇到了同样的问题,这是我的build.sbt文件
name := "rec"
version := "0.1"
scalaVersion := "2.11.12"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0"
有些人说下面这个命令会起作用
sbt reload package
sbt update
sbt reload
但它对我没用。所以我删除了.idea
文件并重新导入build.sbt
文件中的所有内容,这对我来说很有用