![]() | 1 noe132 2018-02-07 17:32:44 +08:00 超大文件不适合 JSON 存储。。。。 如果是一个大数组,可以想办法优化成 {...} {...} {...} 的 JSON line 格式去以行去读。或者如果每个对象占用行固定也可以以固定行数去读。。 否则你得把 4G 的文件整体解析到内存里才行。 |
2 bazingaterry 2018-02-07 17:38:00 +08:00 via iPhone 已知格式可以手 json parser,合需求一一 |
![]() | 3 wellsc 2018-02-07 17:39:56 +08:00 存到 mongo 里试试 |
![]() | 4 twor 2018-02-07 19:08:06 +08:00 一行一行的读,解析后,扔到数据库,或者保存成其他格式? |
![]() | 5 fengyj 2018-02-07 19:11:17 +08:00 4G 的 Json. 0.0!!! |
6 MeteorCat 2018-02-07 20:06:05 +08:00 via Android 吓尿了 4G 的数据,解析起来内存应该爆炸了 |
![]() | 7 Lxxyx 2018-02-07 20:18:37 +08:00 via Android 用 Node 处理过 3g 的 json,直接 load,v8 扛不住,后面用的是 stream 的方式,一点一点解析。(供参考) |
![]() | 8 neocanable 2018-02-07 22:33:15 +08:00 cat yourfile.json | grep -v "{" | grep -v "}," > new_file 新的文件格式就是: 'id': 'xxxxx' 'q' : 'xxxxx' 'a' : 'xxxxx' 'id': 'xxxxx' 'q' : 'xxxxx' 'a' : 'xxxxx' 'id': 'xxxxx' 'q' : 'xxxxx' 'a' : 'xxxxx' 然后一行一行的读吧,很简单 |
![]() | 9 xiaozizayang 2018-02-07 23:30:27 +08:00 via Android pandas 分段读取 或者 spark 吧 |
![]() | 10 ulala 2018-02-07 23:38:29 +08:00 via iPad 曾经有类似的需求,一个好几 g 的文件,每一行一个 json 对象。写了个 C 程序一行行读入,然后抛到队列里并发用 rapidjson 去解析。速度还是挺快的。 |
![]() | 11 zc666 2018-02-08 00:46:15 +08:00 via iPad 可以了解下 jq |
![]() | 12 binux 2018-02-08 01:44:54 +08:00 streaming JSON parser python |
13 KaelSunstrider 2018-02-08 01:54:41 +08:00 一行一行 yield 出来,处理一行就继续 yield 下一行。或则使用 ubuntu 下的行切割命令分成小文件再处理 |
![]() | 14 cout2013mr 2018-02-08 09:22:21 +08:00 要是数组还好,可以一行行来读文件,你要是个整个大对象,key 还没有命名规则的话,真想不到什么好方法。。 |
![]() | 15 UN2758 OP 谢谢大家了,倒腾来倒腾去发现 json 确实不合适储存大文件,改用 csv 了 |
![]() | 16 xwhxbg 2018-02-08 16:56:52 +08:00 readline,我用 js 读过 5 个多 G 的文件 |