为啥我的“org.apache.spark.sql”下面没有“SparkSession”[重复]

Posted

技术标签:

【中文标题】为啥我的“org.apache.spark.sql”下面没有“SparkSession”[重复]【英文标题】:Why no 'SparkSession' below my 'org.apache.spark.sql' [duplicate]为什么我的“org.apache.spark.sql”下面没有“SparkSession”[重复] 【发布时间】:2019-07-24 05:07:02 【问题描述】:

我使用 IDEA 和 SBT 在我的 MAC 中创建一个项目。想用SparkSession的时候,只能在spark.sql下面找到catalyst

我尝试了有关 Scala 和 spark 的不同版本,但它不起作用。

import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkContext

object App 
    def main(args : Array[String]) 
        val spark = SparkSession
            .builder()
            .appName("GitHub push counter")
            .master("local[*]")
            .getOrCreate()

        val sc = spark.SparkContext()
    

第一行 org.apache.spark.sql.SparkSession 在 IDEA 中是红色的。

下面是项目中的build.sbt

name := "SparkExample"

version := "0.1"

scalaVersion := "2.12.8"

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.2"

我没有配置 Hadoop,因为我只想在本地运行它并做一些练习。我希望你能帮助我。

【问题讨论】:

你还需要 spark-sql SparkSession 的依赖为 libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.2" 他正在使用 SBT。这是同一个问题,但你不能指望人们能辨别出这样的巨大差异。有时你只需要看一个例子 非常感谢。我是该领域的菜鸟,以前从未使用过 SBT 和 Maven。但现在我觉得我学到了很多。 【参考方案1】:

你也应该添加 spark-sql

val sparkVersion = "2.4.2"

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % sparkVersion,
  "org.apache.spark" %% "spark-sql" % sparkVersion
)

【讨论】:

以上是关于为啥我的“org.apache.spark.sql”下面没有“SparkSession”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Spark SQL 查询:org.apache.spark.sql.AnalysisException

无法导入 org.apache.spark.sql.cassandra.CassandraSQLContext

org.apache.spark.sql.AnalysisException:无法解析“S.SID”

在 spark 数据框中运行 UDF 时,不支持获取 org.apache.spark.sql.Column 类型的架构

类型不匹配;找到:org.apache.spark.sql.DataFrame 需要:org.apache.spark.rdd.RDD

Spark SQL - org.apache.spark.sql.AnalysisException