使用Pyspark

时间:2018-01-10 13:27:06

标签: json python-2.7 apache-spark pyspark large-files

我对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

0 个答案:

没有答案
相关问题