【发布时间】:2021-08-29 09:03:13
【问题描述】:
我在 Intellij 的 scala 中使用 spark,我使用 POM 导入 spark。现在我想读取一个csv文件如下:
import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.SparkSession
object demo {
def main(args: Array[String]): Unit = {
Logger.getLogger("org").setLevel(Level.ERROR)
val spark: SparkSession = {
SparkSession
.builder()
.master("local")
.appName("spark pika")
.getOrCreate()
}
val df = spark.read.option("header", "true").option("inferSchema", "true")
.csv("/Users/siyuxiao/Downloads/churn_dataset_train.csv")
df.show()
}
}
但我得到了以下信息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession$
at demo$.main(demo.scala:12)
at demo.main(demo.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SparkSession$
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
如何解决这个问题并读取我的 csv 文件? 这是我的 POM 依赖项:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-hive -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
如果有人能解决这个问题,我真的很感激。
【问题讨论】:
-
请添加您的 pom 文件。以及您如何运行您的应用程序?
-
Stackoeverflow 不让我放所有的 POM 代码,因为代码太多。所以我只是把依赖项放在那里。如果你需要所有的 POM,我可以发一张图片。
标签: scala maven apache-spark intellij-idea