如何解决MySQL表数据导入向导导入Yelp大JSON数据集报错问题?
Yelp数据集导入MySQL的问题解决办法
问题根源
Yelp提供的JSON文件是JSON Lines格式——也就是每行一个独立的JSON对象,不是标准的单个JSON数组或对象。这就是为什么你用MySQL Workbench直接导入会解析失败,Sublime的Pretty JSON插件也报错,因为它只认单一结构的JSON。
解决方案一:用MySQL原生命令直接导入(推荐)
不用转格式,直接用LOAD DATA配合JSON函数读取每行数据:
- 先创建对应的数据表(以
business.json为例):
CREATE TABLE business ( id VARCHAR(255) PRIMARY KEY, name VARCHAR(255), address TEXT, city VARCHAR(100), state VARCHAR(50), postal_code VARCHAR(20), latitude DECIMAL(10,8), longitude DECIMAL(11,8), stars DECIMAL(2,1), review_count INT, is_open TINYINT, categories TEXT, attributes JSON, hours JSON );
- 执行
LOAD DATA命令导入(注意替换本地文件路径):
LOAD DATA INFILE '/path/to/your/business.json' INTO TABLE business LINES TERMINATED BY '\n' (@json) SET id = JSON_UNQUOTE(JSON_EXTRACT(@json, '$.business_id')), name = JSON_UNQUOTE(JSON_EXTRACT(@json, '$.name')), address = JSON_UNQUOTE(JSON_EXTRACT(@json, '$.address')), city = JSON_UNQUOTE(JSON_EXTRACT(@json, '$.city')), state = JSON_UNQUOTE(JSON_EXTRACT(@json, '$.state')), postal_code = JSON_UNQUOTE(JSON_EXTRACT(@json, '$.postal_code')), latitude = JSON_EXTRACT(@json, '$.latitude'), longitude = JSON_EXTRACT(@json, '$.longitude'), stars = JSON_EXTRACT(@json, '$.stars'), review_count = JSON_EXTRACT(@json, '$.review_count'), is_open = JSON_EXTRACT(@json, '$.is_open'), categories = JSON_UNQUOTE(JSON_EXTRACT(@json, '$.categories')), attributes = @json->'$.attributes', hours = @json->'$.hours';
- 核心逻辑:把每行内容读入变量
@json,再用JSON函数提取对应字段。 - 若遇权限问题,先在MySQL执行
SET GLOBAL local_infile = 1;,重启连接后再尝试;或者在Workbench的连接设置里开启“Enable Local Infile”。
解决方案二:转成CSV后导入
如果习惯用Workbench的可视化导入工具,可以用Python脚本把JSON Lines转成CSV:
- 先安装依赖库:
pip install pandas - 运行转换脚本(以
business.json为例):
import pandas as pd # 读取JSON Lines格式文件 df = pd.read_json('/path/to/your/business.json', lines=True) # 导出为CSV(不含索引列) df.to_csv('/path/to/your/business.csv', index=False)
- 打开MySQL Workbench的CSV导入向导,选择编码为UTF-8,匹配对应字段即可完成导入。
通用注意事项
- 其余4个文件(review、user、tip、checkin)的处理逻辑一致,只需对应调整表结构、导入命令或脚本字段即可。
- 大文件导入时,建议关闭Workbench的实时预览功能,避免卡顿或崩溃。
内容的提问来源于stack exchange,提问作者mark g
相关产品推荐
相关产品推荐

