对象sql不是包org.apache.spark的成员

时间:2017-12-05 16:05:22

标签: sql scala apache-spark sbt apache-spark-sql

我正在尝试使用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中存在同样问题的另一个问题,但是接受的答案对我没有帮助。这就是为什么我要再问一次。

3 个答案:

答案 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文件中的所有内容,这对我来说很有用