将JSON数据集加载到Spark中,然后使用filter,map等

时间:2015-01-13 19:54:05

标签: python json apache-spark

我是Apache Spark的新手,想要将数据集保存在JSON(字典列表)中,将其加载到RDD中,然后应用过滤器和地图等操作。在我看来这应该很简单,但在查看Spark的文档后,我发现只使用SQL查询(https://spark.apache.org/docs/1.1.0/sql-programming-guide.html),这不是我想与之交互的方式。 RDD。

如何将保存在JSON中的数据集加载到RDD中?如果我错过了相关文档,我会很感激链接。

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以执行类似

的操作
import org.json4s.JValue
import org.json4s.native.JsonMethods._

val jsonData: RDD[JValue] = sc.textFile(path).flatMap(parseOpt)

然后在该JValue上进行JSON处理,如

jsonData.foreach(json => {
  println(json \ "someKey")
  (json \ "id") match {
    case JInt(x) => ???
    case _ => ???
})

答案 1 :(得分:1)

您是否尝试在映射中应用json.loads()?

import json
f = sc.textFile('/path/to/file')
d = lines.map(lambda line: json.loads(line))