【发布时间】:2019-08-20 16:39:32
【问题描述】:
我最近更新到 Spark 2.4.3 和 Scala 2.12.3(来自 Spark 2.0.0),但在编译非常简单的代码(加载和显示)时遇到问题。
我使用 sbt 1.2.8 的 build.sbt 是:
name := "my-program"
version := "1.0"
scalaVersion := "2.12"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.3"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.3"
libraryDependencies += "org.apache.spark" %% "spark-mllib" % "2.4.3"
我正在使用 Scala for Eclipse 进行开发,并且 jars spark-core_2.12_2.4.3.jar、spark-mllib_2.12_2.4.3.jar 和 spark-sql_2.12_2.4.3.jar 链接到我的构建路径(Eclipse 没有显示错误)。
我用自制软件更新了 Spark、scala 和 sbt。我不知道这是否会影响 sbt 查找 jars 的方式?
我尝试了很多次 sbt clean package 和 sbt package,但我得到的只是:
[error] /Users/me/myproject/src/main/scala/Analysis.scala:5:12: object apache is not a member of package org
[error] import org.apache.spark.sql.SparkSession
我不知道该尝试什么。
Analysis.scala:
package main.scala
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
object Analysis {
def main(args: Array[String]) {
// Start Spark session
val spark = SparkSession.builder().getOrCreate()
import spark.implicits._
// Reduce verbosity of output when running in console
spark.sparkContext.setLogLevel("WARN")
val df = spark.read
// Format read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("parserLib", "UNIVOCITY")
.option("inferSchema", "true")
.json("data/transaction.txt")
df.printSchema()
}
}
【问题讨论】:
-
你能在这里添加Analysis.scala吗?
-
当然。查看修改。
-
您是在创建完整的 jar 文件然后执行它吗?如果是的话,如果你有依赖包在JAR文件中,你能看看吗?
-
我从来没有在 Eclipse 上用 Scala 编写过代码,但是……你确定
package main.scala吗?这很奇怪。 -
是的,我确定。这些相当于子文件夹。 src/main/scala 如果你愿意的话。
标签: scala apache-spark sbt