Solving Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream

Solving Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream

我将 Jetbrains IntelliJ IDEA 与 Scala 插件一起使用,并且我正在尝试执行一些使用 Apache Spark 的代码。但是,每当我尝试 运行 它时,由于异常

,代码无法正确执行
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
    at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:76)
    at org.apache.spark.SparkConf.<init>(SparkConf.scala:71)
    at org.apache.spark.SparkConf.<init>(SparkConf.scala:58)
    at KMeans$.main(kmeans.scala:71)
    at KMeans.main(kmeans.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream
    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)
    ... 5 more
来自终端的

运行 spark-shell 没有给我任何问题,警告 unable to load native-hadoop library for your platform 没有出现在我身上。 我读过一些与我类似的问题,但在那些情况下,他们遇到了 spark-shell 或集群配置问题。

我在没有依赖项的情况下使用 spark-core_2.12-2.4.3.jar。我通过 Maven 添加 spark-core 库解决了这个问题,它会自动添加所有依赖项。