2017-08-29 27 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 –

相关问题