簡體   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