2017-08-29 34 views
3

我有一個樣品火花的工作,我是能夠成功地於Java 8上運行,但是當我在java的9運行同一程序失敗與NumberFormatException星火工作於Java 9 NumberFormatException的失敗輸入字符串EA

SparkConf conf = new SparkConf(); 
conf.setMaster("local[*]").setAppName("java 9 example"); 
SparkSession session = SparkSession.builder().config(conf).getOrCreate(); 
Dataset<Row> ds = session.read().text("<xyz path>"); 
System.out.println(ds.count()); 

異常詳細信息:

異常在線程 「主」 java.lang.NumberFormatException:對於輸入 字符串: 「EA」 在 java.base/java.lang.NumberFormatException.forInputString (NumberFormatException.java:65) at java.base/java.lang.Integer.parseInt(Integer.java:695)at java.base/java.lang.Integer.parseInt(Integer.java:813)at scala .collection.immutable.StringLike $ class.toInt(StringLike.scala:229) at scala.collection.immutable.StringOps.toInt(StringOps.scala:31)at org.apache.spark.SparkContext.warnDeprecatedVersions(SparkContext.scala :353) 在org.apache.spark.SparkContext(SparkContext.scala:186)在 org.apache.spark.SparkContext $ .getOrCreate(SparkContext.scala:2313) 在 org.apache.spark.sql。 SparkSession $ Builder $$ anonfun $ 6.apply(SparkSession.scala:868) at org.apache.spark.sql.SparkSession $ Builder $$ anonfun $ 6.ap (SparkSession.scala:860) at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.sql.SparkSession $ Builder.getOrCreate(SparkSession.scala:860) at com.ts. spark.session.TestApp.main(TestApp.java:18)

Maven的火花依賴性:

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-core_2.10</artifactId> 
    <version>2.1.0</version> 
</dependency> 

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-sql_2.10</artifactId> 
    <version>2.1.0</version> 
</dependency> 

Java的詳細信息:

Java版本 「9-EA」
的Java(TM)SE運行時環境(構建9-EA + 156)
爪哇熱點(TM)64位服務器VM(生成9-EA + 156,混合模式)

是否有任何額外的步驟,我需要遵循安裝火花在Java 9?謝謝!

+0

你正在測試什麼版本的火花? –

+0

即使你解決這個問題它是在星火不太可能很少會在Java中9 ... – vanza

+0

工作什麼是該項目的給定樣本的模塊信息?詢問可能與此相關或不相關的問題。 – nullpointer

回答

4

Spark似乎不支持版本號中的非Int值(至少對於支持的JVM),對於非早期訪問版本,這不會發生,但此處爲ea字符串。 一旦Java9將被正確釋放,它可能會正確運行。

+0

謝謝@Gabor。有沒有解決此問題的解決方法? –

+0

我不知道任何。 :(我會嘗試解決這個問題,看看它是否適用於Java9或不。 –

6

似乎階絃樂器的是被稱爲解析「EA」(「9-EA」的一部分),其爲整數。使用的JDK 9版本是舊的,更新的版本在JDK 9候選版本接近時刪除了「-ea」。因此,請獲取最新的JDK 9下載(jdk-9 + 181),並向Spark提交錯誤以檢查解析版本字符串的代碼。版本字符串方案的一個很好的參考是JEP 223(http://openjdk.java.net/jeps/223)。

+0

謝謝。問題已得到解決與最新jdk9 –

相關問題