我有一个超过一百万行的 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 加载到数据帧中,并查找特定列来进行分析