Hi,

I have a json file where the object definition in each line includes an
array component "obj" that contains 0 or more elements as shown by the
example below.

 {"name": "16287e9cdf",  "obj": [{"min": 50,"max": 59 }, {"min": 20, "max":
29}]},
 {"name": "17087e9cdf",  "obj": [{"min": 30,"max": 39 }, {"min": 10, "max":
19}, {"min": 60, "max": 69}]},
 {"name": "18287e0cdf"}

I need to extract all the min values from the JSON definition in each line
for further processing. I used the following Spark code to parse the file
and extract the min fields, but I am getting a runtime error. I would like
to know what is the right way to extract the 0 or more min values from the
array above.

val inp = sc.textFile(args(0))
val res = inp.map(line => { parse(line) })
                   .map(json =>
                      {
                         implicit lazy val formats =
org.json4s.DefaultFormats
                         val name = (json \ "name").extract[String]
                         val min_vals =  (json \ "obj"  \
"min").extract[Array[Int]]
                         (name, min_vals)
                      }
                    )


Thanks for  your help.




--
View this message in context: 
http://apache-spark-user-list.1001560.n3.nabble.com/Help-with-Json-array-parsing-tp9807.html
Sent from the Apache Spark User List mailing list archive at Nabble.com.

Reply via email to