You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决MySQL表数据导入向导导入Yelp大JSON数据集报错问题?

Yelp数据集导入MySQL的问题解决办法

问题根源

Yelp提供的JSON文件是JSON Lines格式——也就是每行一个独立的JSON对象,不是标准的单个JSON数组或对象。这就是为什么你用MySQL Workbench直接导入会解析失败,Sublime的Pretty JSON插件也报错,因为它只认单一结构的JSON。

解决方案一:用MySQL原生命令直接导入(推荐)

不用转格式,直接用LOAD DATA配合JSON函数读取每行数据:

  1. 先创建对应的数据表(以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
);
  1. 执行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:

  1. 先安装依赖库:pip install pandas
  2. 运行转换脚本(以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)
  1. 打开MySQL Workbench的CSV导入向导,选择编码为UTF-8,匹配对应字段即可完成导入。

通用注意事项

  • 其余4个文件(review、user、tip、checkin)的处理逻辑一致,只需对应调整表结构、导入命令或脚本字段即可。
  • 大文件导入时,建议关闭Workbench的实时预览功能,避免卡顿或崩溃。

内容的提问来源于stack exchange,提问作者mark g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:00:48