如何轻松地将json文件的某些方面加载到rdd



我有一个超过一百万行的 json 文件,所以我试图尽量减少我必须运行所有内容才能将其的一个方面放入 rdd 的次数。

现在,我将每一行加载到一个列表中:

with open('in/json-files/sites.json') as f:
        for line in f:
            data.append(json.loads(line))

然后,我制作另一个列表并将方面导入其中:

for line in range(1,len(data)):
        data_companies.append(data[line]['company'])

然后,我将其并行化为 rdd,以便对其进行分析。我担心这会占用多少内存,那么有没有更简单、更快捷的方法呢?我尝试像这样加载 json 文件,但它不起作用:

data.append(json.loads(line['company'))

由于您的数据是结构化的(JSON(,因此可以查看Spark-SQL


https://spark.apache.org/docs/2.4.0/sql-programming-guide.html
https://spark.apache.org/docs/2.4.0/sql-data-sources-json.html

您可以直接将 JSON 加载到数据帧中,并查找特定列来进行分析

最新更新