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

时间:2019-05-27 23:14:34

标签: python json list apache-spark pyspark

我有一个超过一百万行的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'))

1 个答案:

答案 0 :(得分:0)

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