2017-07-27 92 views
0

我有大约50 GB的6,000个JSON文件,我正在使用以下方法将其加载到一个pandas数据框中。 (该format_pandas功能的同时读取每一行JSON设置我的熊猫数据帧):将50 GB的JSON处理成Pandas Dataframe

path = '/Users/shabina.rayan/Desktop/Jupyter/Scandanavia Weather/Player Data' 
records = [] 
for filename in glob.glob(os.path.join(path, '*.JSON')): 
    file = Path(filename) 
    with open(file) as json_data: 
     j = json.load(json_data) 
     format_pandas(j) 
pandas_json = json.dumps(records) 
df = pd.read_json(pandas_json,orient="records") 

如可以猜测,这需要一个极度长时间来处理我的数据。有没有人有任何其他方式的建议,我可以处理50 GB的JSON文件,并可视化/分析它?

+1

根据假设你将'format_pandas()'(不管是什么)的结果实际附加到'records' - 为什么你要加载和解析你的JSON文件,以便稍后将它们序列化回JSON,然后通过Pandas再次解析它们?这非常浪费,尤其是对于如此大量的数据......为什么不在读取JSON数据时追加数据框? – zwer

+0

如果您有50GB的数据,我会建议您尽可能使用二进制格式进行存储。如果格式未经压缩,加载速度将会更快,这是因为您的大小将会减小一个数量级(减少磁盘I/O),您将不得不通过并验证少量文本(较少解析)。 –

+0

@ zwer。我没有注意那部分。这太可怕了:) –

回答