Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Python 将JSON数据集加载到Spark中,然后使用过滤器、映射等_Python_Json_Apache Spark - Fatal编程技术网

Python 将JSON数据集加载到Spark中,然后使用过滤器、映射等

Python 将JSON数据集加载到Spark中,然后使用过滤器、映射等,python,json,apache-spark,Python,Json,Apache Spark,我是ApacheSpark新手,希望将JSON中保存的数据集作为字典列表,加载到RDD中,然后应用filter和map之类的操作。在我看来,这应该很简单,但在查看Spark的文档后,我发现唯一的东西是使用SQL查询,这不是我希望与RDD交互的方式 如何将JSON中保存的数据集加载到RDD中?如果我错过了相关的文档,我希望能有一个链接 谢谢 你可以这样做 import org.json4s.JValue import org.json4s.native.JsonMethods._ val jso

我是ApacheSpark新手,希望将JSON中保存的数据集作为字典列表,加载到RDD中,然后应用filter和map之类的操作。在我看来,这应该很简单,但在查看Spark的文档后,我发现唯一的东西是使用SQL查询,这不是我希望与RDD交互的方式

如何将JSON中保存的数据集加载到RDD中?如果我错过了相关的文档,我希望能有一个链接


谢谢

你可以这样做

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 _ => ???
})

您是否尝试过在映射中应用json.loads

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

同样的文档说明使用SQL只是一种选择:可以使用jsonRDD以分层方式查询数据。val anotherPeopleRDD=sc.parallelize{name:Yin,地址:{城市:哥伦布,州:俄亥俄州}}::Nil;val anotherPeople=sqlContext.jsonrddanotherpeople基本上我就是这么做的,是的。我将文件作为原始文本逐行读取,并应用json.loads函数。谢谢你的回答!