首页 > 解决方案 > 如何轻松地将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'))

标签: pythonjsonlistapache-sparkpyspark

解决方案


由于您的数据是结构化的(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 加载到数据框中并查找特定列进行分析


推荐阅读