我对Spark很新,并且自学我一直在使用小json文件,它们工作得很好。我使用Pyspark和Spark 2.2.1但是我不知道如何读取 单个数据行而不是整个json文件。我一直在寻找关于这方面的文档,但它看起来很稀缺。我必须处理一个大的(大于我的RAM)json文件(wikipedia转储:https://archive.org/details/wikidata-json-20150316),并希望在chuncks或逐行中执行此操作。我认为Spark的设计就是为了做到这一点,但无法找到如何做到这一点,当我以天真的方式请求前5个观察时,我的内存耗尽。我试过RDD。
SparkRDD= spark.read.json("largejson.json").rdd
SparkRDD.take(5)
和Dataframe
SparkDF= spark.read.json("largejson.json")
SparkDF.show(5,truncate = False)
简而言之:
1)如何读取只是一个大型JSON文件的部分? (显示前5个条目)
2)我如何逐行过滤大型JSON文件以保持所需的结果?
另外:我不想预定义数据方案以使其工作。
我必须忽略一些事情。
由于
编辑:在一些帮助下,我已经看了第一个观察,但它本身已经太大了,不能发布在这里,所以我只是把它的一小部分放在这里。
[
{
"id": "Q1",
"type": "item",
"aliases": {
"pl": [{
"language": "pl",
"value": "kosmos"
}, {
"language": "pl",
"value": "\\u015bwiat"
}, {
"language": "pl",
"value": "natura"
}, {
"language": "pl",
"value": "uniwersum"
}],
"en": [{
"language": "en",
"value": "cosmos"
}, {
"language": "en",
"value": "The Universe"
}, {
"language": "en",
"value": "Space"
}],
...etc