Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Scala在spark shell中将JSON解析为具有选项[T]arg类型的类_Json_Scala_Jackson - Fatal编程技术网

使用Scala在spark shell中将JSON解析为具有选项[T]arg类型的类

使用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中使用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[A]
    来说,它工作得很好,其中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时遇到过Scala
Int
的问题,尽管我记不起它到底是什么


同样,使用
Int
进行
case类
也是值得的-您为什么喜欢常规
?我没有看到任何
var
s.

谢谢!这就解决了问题。注意。。。不使用case类,因为我的真实代码不使用case类。。。试着把stackoverflow的内容剥离到演示问题的最小玩具示例,但尽量保持原样。
class C(val b: Int, val bb: Option[java.lang.Integer]=None)