摘要
最近参加了腾讯2017广告算法大赛,遇到了需要处理大体积CSV文件的问题。
比赛给出的单个文件大小有1G多。
MySQL
MySQL支持直接用CSV文件导入数据库,所以我第一时间想到用数据库进行数据预处理。
然后用Navicat试了一下,卡死。
解决方法是使用SQL命令行来导入:
1. 建立相应的表
2. 通过LOAD DATA INFILE命令导入文件
遇到了几个问题:
- ERR 1064 SQL关键词冲突
在插入表的时候,表达列名称等不能和SQL冲突,解决办法是加上一个引号即可 “。 - 编码问题
在建表和插入数据时最好都加上charset控制,并且指定为utf8,防止乱码。
然后,破费解决问题!