【发布时间】:2018-08-27 03:51:56
【问题描述】:
Spark 版本:1.3
我有一个要求,我正在处理BigInteger 类型的数据。 Bean 类 (Pojo) 使用很少的 BigInteger 数据类型。解析数据并创建JavaRDD 工作正常,但是在创建以 JavaRDD 和 BeanClass 作为参数的数据帧时,Spark 会抛出以下异常。
scala.MatchError: class java.math.BigInteger (of class java.lang.Class)
at org.apache.spark.sql.SQLContext$$anonfun$getSchema$1.apply(SQLContext.scala:1182)
at org.apache.spark.sql.SQLContext$$anonfun$getSchema$1.apply(SQLContext.scala:1181)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108)
at org.apache.spark.sql.SQLContext.getSchema(SQLContext.scala:1181)
at org.apache.spark.sql.SQLContext.createDataFrame(SQLContext.scala:419)
at org.apache.spark.sql.SQLContext.createDataFrame(SQLContext.scala:447)
使用 Spark-Shell 我看到 Scala 能够处理 BigInt
scala> val x = BigInt("190753000000000000000");
x: scala.math.BigInt = 190753000000000000000
我不确定异常的原因是什么。任何帮助将不胜感激。
【问题讨论】:
标签: scala apache-spark apache-spark-sql