使用Scala在spark shell中将JSON解析为具有选项[T]arg类型的类
我在spark shell中使用json4s.jackson解析JSON时遇到困难。同样的事情在sbt repl中也可以正常工作 我想知道我正在使用的Spark版本是否有解决方法使用Scala在spark shell中将JSON解析为具有选项[T]arg类型的类,json,scala,jackson,Json,Scala,Jackson,我在spark shell中使用json4s.jackson解析JSON时遇到困难。同样的事情在sbt repl中也可以正常工作 我想知道我正在使用的Spark版本是否有解决方法 spark shell v1.6,scala v2.10.5 sbt repl scala v 2.11.8 下面的示例演示了该问题 sbt repl在所有示例中都能正常工作 火花壳阻塞并为val c提供错误信息。奇怪的是,它似乎被Option[Int]或Option[Double]阻塞了,但对于Option[
- spark shell v1.6,scala v2.10.5
- sbt repl scala v 2.11.8
- sbt repl在所有示例中都能正常工作李>
- 火花壳阻塞并为
提供错误信息。奇怪的是,它似乎被val c
或Option[Int]
阻塞了,但对于Option[Double]
来说,它工作得很好,其中A是一个类Option[A]
org.json4s.package$MappingException:找不到C的构造函数
我能找到的唯一真正的区别(scala版本除外)是在spark shell中。。。它阻塞了选项[native types],似乎在选项[user-defined classes]上工作。但也许这是巧合
在这样的帖子里。。。我看到有人评论说类结构与JSON不匹配。。。但对我来说,C类
和valjc
看起来是一样的
还有一点。。。当我强化.JAR中的类def和函数,并将def从JAR导入spark shell而不是在repl中定义时,此错误仍然存在。有时这与spark 1.6相关,但似乎不在这里。您是否尝试过:
class C(val b: Int, val bb: Option[java.lang.Integer]=None)
我以前在使用Json4s时遇到过ScalaInt
的问题,尽管我记不起它到底是什么
同样,使用
Int
进行case类
也是值得的-您为什么喜欢常规类
?我没有看到任何var
s.谢谢!这就解决了问题。注意。。。不使用case类,因为我的真实代码不使用case类。。。试着把stackoverflow的内容剥离到演示问题的最小玩具示例,但尽量保持原样。
class C(val b: Int, val bb: Option[java.lang.Integer]=None)