摘要

最近参加了腾讯2017广告算法大赛,遇到了需要处理大体积CSV文件的问题。

比赛给出的单个文件大小有1G多。

MySQL

MySQL支持直接用CSV文件导入数据库,所以我第一时间想到用数据库进行数据预处理。

然后用Navicat试了一下,卡死。

解决方法是使用SQL命令行来导入:
1. 建立相应的表
2. 通过LOAD DATA INFILE命令导入文件

遇到了几个问题:

  1. ERR 1064 SQL关键词冲突
    在插入表的时候,表达列名称等不能和SQL冲突,解决办法是加上一个引号即可 “。
  2. 编码问题
    在建表和插入数据时最好都加上charset控制,并且指定为utf8,防止乱码。

然后,破费解决问题!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐