我们说我有一个列表[行],例如{"name":"abc,"salary","somenumber","id":"1"},{"name":"xyz","salary":"some_number_2","id":"2"}
如何使用scala获取JSON键值对。让我们假设我想得到关键的价值"薪水"。是下面的一个吗?
val rows = List[Row] //Assuming that rows has the list of rows
for(row <- rows){
row.get(0).+("salary")
}
答案 0 :(得分:0)
使用Spray Json:
import spray.json._
import DefaultJsonProtocol._
object sprayApp extends App {
val list = List("""{"name":"abc","salary":"somenumber","id":"1"}""", """{"name":"xyz","salary":"some_number_2","id":"2"}""")
val jsonAst = list.map(_.parseJson)
for(l <- jsonAst) {
println(l.asJsObject.getFields("salary")(0))
}
}
答案 1 :(得分:0)
如果您有List[Row]
,我认为您已经拥有DataFrame
并且您collectAsList
。如果您collect
/ collectAsList
表示您
我建议将其保存为DataFrame然后执行:
val salaries = df.select("salary")
然后,您可以对工资进行进一步计算,show
他们或collect
或将他们留在某处。
如果您选择使用DataSet
(类似于键入的DataFrame
),那么您可以
val salaries = dataSet.map(_.salary)