我有大约5gb的大csv文件。我想把它分成带有标题的小文件。我试过在stackoverflow上给出的例子,但由于php内存限制它不能完全工作,它也没有为每个文件添加标题以及如何只获取csv的标题?
答案 0 :(得分:0)
您可以按照以下步骤操作:
1) 首先,如果文件包含标题,则可以使用以下命令将较少的行复制到下一个csv文件: Get-Content" C:\ start.csv" |选择 - 第一次10 | Out-File" C:\ stop.csv"
参考链接:toSelectFirstFewLinesOfCSVFile
2)之后相应地创建表。
3)使用query将csv数据加载到该表(对于批量加载使用LOAD DATA INFILE命令)
4)为此准备shell脚本并运行命令,该命令可以运行更长时间。
(注意:您可以设置SET net_read_timeout = 99999; SET net_write_timeout = 99999;这些连接用于更长的MySql连接。)
5)调用shell脚本。
这应该有用。