Spark作业在输入字符串ea的java 9 NumberFormatException上失败
我有一个示例spark作业,我能够成功地在java 8上运行它,但当我在java 9上运行相同的程序时,它会失败,出现Spark作业在输入字符串ea的java 9 NumberFormatException上失败,java,scala,apache-spark,java-9,Java,Scala,Apache Spark,Java 9,我有一个示例spark作业,我能够成功地在java 8上运行它,但当我在java 9上运行相同的程序时,它会失败,出现NumberFormatException SparkConf conf = new SparkConf(); conf.setMaster("local[*]").setAppName("java 9 example"); SparkSession session = SparkSession.builder().config(conf).getOrCreate(); Data
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());
SparkConf conf=new SparkConf();
setAppName(“java 9示例”);
SparkSession session=SparkSession.builder().config(conf.getOrCreate();
数据集ds=session.read().text(“”);
System.out.println(ds.count());
异常详细信息:
<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>
线程“main”java.lang.NumberFormatException中的异常:用于输入
字符串:“ea”位于
java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
位于java.base/java.lang.Integer.parseInt(Integer.java:695)
java.base/java.lang.Integer.parseInt(Integer.java:813)位于
scala.collection.immutable.StringLike$class.toInt(StringLike.scala:229)
位于scala.collection.immutable.StringOps.toInt(StringOps.scala:31)
org.apache.spark.SparkContext.warndDeprecatedVersions(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)
在
org.apache.spark.sql.SparkSession$Builder$$anonfun$6.apply(SparkSession.scala:860)
位于scala.Option.getOrElse(Option.scala:120)
org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:860)
位于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>
org.apache.spark
spark-core_2.10
2.1.0
org.apache.spark
spark-sql_2.10
2.1.0
Java详细信息:
<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版本“9-ea”Java(TM)SE运行时环境(构建9-ea+156)
Java HotSpot(TM)64位服务器虚拟机(构建9-ea+156,混合模式)
在Java9上设置spark是否还需要执行其他步骤?谢谢 Spark似乎不支持版本号中的非
Int
值(至少对于受支持的JVM),这在非早期访问版本中不会发生,下面是ea
字符串。
一旦Java9正确发布,它可能会正确运行。似乎调用scala StringLike来将“ea”(9-ea的一部分)解析为整数。使用的JDK 9版本是旧的,新的版本随着JDK 9发行候选版本的临近而删除“-ea”。因此,获取最新的JDK9下载(JDK-9+181),并向Spark提交一个bug,以检查解析版本字符串的代码。版本字符串方案的一个很好的参考是JEP 223()。您正在测试spark的哪个版本?即使您解决了这个问题,spark中的任何东西都不可能在Java 9中工作……对于给定的示例,您的项目模块信息是什么?正在查询可能与此相关或不相关的问题。我没有任何模块信息,我只从jdk8切换到9,并尝试运行此代码示例。谢谢@Gabor。是否有任何解决此问题的方法?我不知道有任何方法:(我会尝试解决这个问题,看看它是否适用于Java9。