json - 如何加载 20GB 的 json 文件以在 pandas 中读取?
问题描述
我有一个大小为 19.4 GB 的 JSON 文件。我尝试了很多方法来读取文件。例如:pandas.read_json(filename)
简单地使笔记本崩溃。我正在寻找以惰性方式加载文件的方法。比如,一次 1GB,然后将其转储到 SQLite 或 neo4j 数据库中以分析数据。对此的任何想法将不胜感激。
解决方案
也许您可以尝试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)
推荐阅读
- html - Angulars 'ng-container' 的 React 等价物是什么
- javascript - Javascript - 使用 lodash 对数组进行排序 - 从初始变量中获取密钥
- html - 我们可以在将 XML 数据转换为 HTML 之前对其进行清理吗?
- android - Java android谷歌地图不显示地图(白屏)
- laravel - 在laravel中删除记录
- javascript - Javascript - Defined Variable throws Error for being Undefined?
- sql - 在sql中获取两次之间的所有日期值?
- windows-phone-8 - 如何为 Windows 手机应用程序生成刷新和访问令牌
- duplicates - 使用 Braintree 创建交易时如何不保存重复卡?
- python - 第二个objects.create无法创建记录后Django回滚不起作用