繁体   English   中英

线程“main”中的异常 java.lang.NoSuchMethodError: &#39;void scala.util.matching.Regex。<init> (java.lang.String, scala.collection.Seq)&#39;

[英]Exception in thread "main" java.lang.NoSuchMethodError: 'void scala.util.matching.Regex.<init>(java.lang.String, scala.collection.Seq)'

当我尝试将 .xlsx 文件作为 csv 格式的 DataFrame 读取时,会发生此错误。 任何人都可以帮助我这里的问题是什么以及如何解决它? 下面是我使用的代码,

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中的解决方案,首先去File -> Project Structure -> Global Libraries然后点击New Global Library(Alt+Insert)然后选择Scala SDK然后会像这样弹出一个新窗口: New Global Library您看到的 scala 版本是导致您出现问题的版本,它需要适合您为 spark 安装的 scala,所以就去到终端并在终端中输入spark-shell您将看到您在 Spark 中使用的 scala 版本:

saprk-shell返回到New Global Library窗口并单击Download选择您在 spark-shell 中看到的版本并单击OK 刷新后编辑pom.xml中的依赖,刷新项目,问题就解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM