linux分片切割CSV文件
目录
前言
最近做项目,在向SAS工具里面导入CSV数据,由于CSV文件过大(超过2G),SAS系统资源不够,出现卡死,现记录解决方法。
一、操作步骤
1.linux分片切割CSV文件
第一种:按文件大小分割(不推荐)
split -a 2 -d -b 1k test.csv test
-a 2 后缀是2位
-d 后缀是数字
-b 1k 每个文件最大1kb
test.csv 需要分割的文件名称
test 分割后的文件前缀
这种分割方式有一个弊端,有可能分割后的子文件,边界数据(两个子文件首尾部分)因为是按1kb分割,出现一行数据被分离了,有数据损失,不推荐。
第二种:按行数分割(推荐)
split -a 2 -d -l 10 test.csv test
-a 2 后缀是2位
-d 后缀是数字
-l 10 每10行一个文件
test.csv 需要分割的文件名称
test 分割后的文件前缀
可先按文件大小分割(比如1G,按实际最大系统资源分配),观察下子文件平均一个大概多少行,再用这个行数重新分割文件
2.重命名CSV
目前分割后的子文件不是CSV后缀的,需要重命名
for i in *; do mv $i $i".csv"; done
参考文章:
https://www.cnblogs.com/andong2015/p/11008778.html
https://blog.csdn.net/argansos/article/details/6885949