我正在尝试使用json4s来解析和查询spark中的流。 我可以将流解析为org.apache.spark.streaming.dstream.DStream [org.json4s.JValue]。 但是当我尝试使用查询功能时,我似乎无法使用“\\”进行浏览。
以下是我得到的错误。为什么会这样?
[info] Compiling 1 Scala source to /home/../target/scala-2.10/classes...
[error] /home/../src/main/test.scala:90: value \\ is not a member of org.apache.spark.streaming.dstream.DStream[org.json4s.JValue]
[error] JArray(ips) <- jsValue \\ "ips"
这是我的scala代码
val jsValue1 = for {
JArray(ips) <- jsValue \\ "ips"
JObject(ip) <- ips
JField("ipaddress", JString(ipaddress))<- ip
}yield ipaddress
我正在使用json4s.native
import org.json4s._
import org.json4s.native.JsonParser
import org.json4s.native.JsonMethods._
当我在下面执行时,我得到:value \\不是org.apache.spark.rdd.RDD [org.json4s.JValue]的成员
messages.foreachRDD { rdd =>
val jsValue = rdd.map{ case (v,_) => implicit val formats = DefaultFormats; JsonParser.parse(v)}
val jsValue1 = for {
JArray(ips) <- jsValue \\ "ips"
JObject(ip) <- ips
JField("ipaddress", JString(ipaddress)) <- ip
}yield ipaddress}
提前感谢您的帮助!