“线程中的异常”;“主要”;java.lang.NoSuchMethodError:';void scala.util.matching.Regex;初始化>;(java.lang.String、scala.collection.Seq)和#x27;

“线程中的异常”;“主要”;java.lang.NoSuchMethodError:';void scala.util.matching.Regex;初始化>;(java.lang.String、scala.collection.Seq)和#x27;,java,scala,apache-spark,Java,Scala,Apache Spark,当我尝试将.xlsx文件作为csv格式的数据帧读取时,会发生此错误。有谁能帮我解决这个问题吗?下面是我使用的代码 package Sample import org.apache.spark.sql{SparkSession, SparkContext} import org.apache.spark.SparkConf Object Read extends App { val conf = new SparkConf() .setAppName("Excel to DataFrame"

当我尝试将.xlsx文件作为csv格式的数据帧读取时,会发生此错误。有谁能帮我解决这个问题吗?下面是我使用的代码

package Sample

import org.apache.spark.sql{SparkSession, SparkContext}
import org.apache.spark.SparkConf

Object Read extends App {

val conf = new SparkConf()
.setAppName("Excel to DataFrame")
.setMaster("local[*]")

val sc = new SparkContext(conf)
sc.setLogLevel("WARN")


val spark = SparkSession.builder()
.appName("Excel to DataFrame")
.config("spark.master","local")
.getOrCreate()

val inputDF = spark.read
.format("csv")
.option("inferSchema","true")
.option("path","G:\\Sample Input.xlsx")
.load()

inputDF.show()

}

您遇到的问题是scala版本与您在操作系统中安装的spark不兼容。因此,您需要重新配置您使用的IDE的scala版本,我将用IntelliJ IDEA向您解释解决方案,首先,转到文件->项目结构->全局库,然后单击新建全局库(Alt+Insert)然后选择Scala SDK,将弹出一个新窗口,如下所示: 您看到的scala版本是导致您出现问题的版本,它需要适合您为spark安装的scala,因此只需转到终端并在终端中键入spark shell,您将看到您在spark中使用的scala版本:


返回“新建全局库”
窗口,单击“下载”选择您在spark shell中看到的版本,然后单击“确定”。刷新后,编辑pom.xml中的依赖项并刷新项目,问题将得到解决。

您遇到的问题是scala版本与您在操作系统中安装的spark不兼容。因此,您需要重新配置您使用的IDE的scala版本,我将用IntelliJ IDEA向您解释解决方案,首先,转到文件->项目结构->全局库,然后单击新建全局库(Alt+Insert)然后选择Scala SDK,将弹出一个新窗口,如下所示: 您看到的scala版本是导致您出现问题的版本,它需要适合您为spark安装的scala,因此只需转到终端并在终端中键入spark shell,您将看到您在spark中使用的scala版本:


返回“新建全局库”
窗口,单击“下载”选择您在spark shell中看到的版本,然后单击“确定”。刷新后,编辑pom.xml中的依赖项并刷新项目,问题将得到解决。

您可以发布异常的堆栈跟踪吗?线程“main”java.lang.NoSuchMethodError中的异常:“void scala.util.matching.Regex.(java.lang.String,scala.collection.Seq)”位于scala.collection.immutable.StringLike.rscala.collection.immutable.StringLike.r$(StringLike.scala:284)scala.collection.immutable.StringOps.r(StringOps.scala:33)scala.collection.immutable.StringLike.r(StringLike.scala:273)scala.collection.immutable.StringLike.r$(StringLike.scala:273)scala.collection.immutable.StringOps.StringOps.r(StringOps.scala:33)位于org.apache.spark.util.Utils$(Utils.scala:104)NoSuchMethodError通常意味着类路径中某些依赖项的版本存在问题。可能您正在混合Scala版本?嗨,Ibilger,谢谢您的评论。我也会检查这个版本。即使我尝试将json文件读取为DF,我也会收到相同的错误。请发布异常的stacktrace?异常在thre中ad“main”java.lang.NoSuchMethodError:'void scala.util.matching.Regex.(java.lang.String,scala.collection.Seq)'at scala.collection.immutable.StringLike.r(StringLike.scala:284)at scala.collection.immutable.StringLike.r(StringOps.scala:33)scala.collection.immutable.StringLike.r(StringLike.scala:273)和scala.collection.immutable.StringLike.r$(StringLike.scala:273)以及org.apache.spark.util.Utils$(Utils.scala:104)中的StringLike.collection.immutable.StringOps.r(StringOps.scala:33)NoSuchMethodError通常意味着类路径中某些依赖项的版本存在问题。可能您正在混合Scala版本?嗨,Ibilger,谢谢您的评论。我也会检查这个版本。即使我尝试将json文件作为DF读取,我也会收到相同的错误。