我有一个示例spark作业,我成功地能够在java 8上运行,但是当我在java 9上运行相同的程序时,它失败并出现NumberFormatException
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());
例外细节:
Exception in thread “main” java.lang.NumberFormatException: For input
string: “ea” at
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)
at org.apache.spark.SparkContext.(SparkContext.scala:186) at
org.apache.spark.SparkContext$.getorCreate(SparkContext.scala:2313)
at
org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:868)
at
org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(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 spark依赖项:
<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 version “9-ea”
Java(TM) SE Runtime Environment (build 9-ea+156)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+156, mixed mode)
在java 9上设置spark需要遵循的其他步骤吗?谢谢!
解决方法:
Spark似乎不支持版本号中的非Int值(至少对于支持的JVM),非早期访问版本不会发生,这里是ea String.
一旦Java9正确发布,它将可能正确运行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。