当csv原始数据为 制表符分隔时, 对Excel、pandas处理不友好,可直接使用 tr 或 sed 进行转换。
# 使用 tr,将制表符替换为逗号
tr '\t' ',' < input.tsv > step1.csv特点:
为了方便并行处理、上传 HDFS、导入数据库,常需要将 CSV 按行数拆分。 以下示例:每 1,000,000 行一个文件,且每个文件都包含表头。
awk '
NR==1 {h=$0; next}
{
f = int((NR-2)/1000000)
if ((NR-2)%1000000 == 0) {
name = sprintf("part_%03d.csv", f)
print h > name
}
print >> name
}
' step1.csv输出示例:
part_000.csv
part_001.csv
part_002.csvhead -n 5 part_000.csvwc -l part_000.csvcut -d',' -f3 part_000.csv | headawk -F',' '$2=="xxx"' part_000.csv#csv