解析大型JSON文件

时间:2015-04-27 22:44:28

标签: json parsing yelp

我正在研究Yelp Dataset Challenge。数据由大型子文件组成(最多1 GB,1mm +行)。我想对它进行一些数据分析,比较文件之间的数据,例如:将审阅文件中的审核与业务文件中的业务相关联。

我完全可以自由地使用什么平台/编程语言。什么是最有效的方法,所以我可以轻松快速查找?

儿子格式非常简单。以下是一个例子。像“user_id”这样的字段是唯一的,可以与其他文件条目交叉引用。

{"votes": {"funny": 0, "useful": 2, "cool": 1}, 
"user_id": "Xqd0DzHaiyRqVH3WRG7hzg", 
"review_id": "15SdjuK7DmYqUAj6rjGowg", 
"stars": 5, "date": "2007-05-17", 
"text": "dr. goldberg offers everything i look for in a general practitioner.  he's nice and easy to talk to without being patronizing; he's always on time in seeing his patients; he's affiliated with a top-notch hospital (nyu) which my parents have explained to me is very important in case something happens and you need surgery; and you can get referrals to see specialists without having to see him first.  really, what more do you need?  i'm sitting here trying to think of any complaints i have about him, but i'm really drawing a blank.",
 "type": "review", 
 "business_id": "vcNAWiLM4dR7D2nwwJ7nCA"}

1 个答案:

答案 0 :(得分:0)

首先导入数据库中的所有数据。

您可以选择将事物完全展平为多个表(如果您在JSON中获得“嵌套”对象),或者您可以将某些部分保留为JSON,尤其是如果您使用可以解析/索引它的数据库(如PostgreSQL系统)。

数据库的选择完全取决于您。您可以使用经典的SQL数据库(Postgresql,Mysql,SQL Server,SQLite ......),或者您可以使用面向文档的/ noSQL数据库,例如MongoDB(它支持类似JSON的数据)。这完全取决于您将对数据做什么(以及您对此感到满意)。

然后,您可以使用数据做任何您喜欢的事情......

请注意,如果单个文件是> 1 GB,您可能必须使用一些自定义工具来执行导入,因为在内存中一次加载所有内容(通过您喜欢的语言通常的JSON解码函数)可能会有点过多。但要小心,您仍然需要正确解析所有数据,因此请避免使用简单的拆分或正则表达式。您可能需要查看此主题中列出的解决方案:Is there a streaming API for JSON?