首页 > 解决方案 > 如何加载 20GB 的 json 文件以在 pandas 中读取?

问题描述

我有一个大小为 19.4 GB 的 JSON 文件。我尝试了很多方法来读取文件。例如:pandas.read_json(filename)简单地使笔记本崩溃。我正在寻找以惰性方式加载文件的方法。比如,一次 1GB,然后将其转储到 SQLite 或 neo4j 数据库中以分析数据。对此的任何想法将不胜感激。

标签: jsonpandaslazy-loadinglarge-files

解决方案


也许您可以尝试PySpark,因为它也是分布式和惰性的,PySpark API 可用于分析内存中的数据,如果需要,可以将数据帧转储到数据库中。

import pyspark
from pyspark import SparkConf

conf = SparkConf()
conf.set('spark.local.dir', '/remote/data/match/spark')
conf.set('spark.sql.shuffle.partitions', '2100')
SparkContext.setSystemProperty('spark.executor.memory', '10g')
SparkContext.setSystemProperty('spark.driver.memory', '10g')
sc = SparkContext(appName='mm_exp', conf=conf)
sqlContext = pyspark.SQLContext(sc)

data = sqlContext.read.json(file.json)

推荐阅读