我有一个超过一百万行的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'))
答案 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加载到数据框中,然后查找特定列以进行分析