有没有一种简单的方法可以用多行条目拆分大型 CSV 文件?

Is there a easy way to split a large CSV file with multiline entries?

您好,我有一个巨大的 14Gb CSV 文件,其中的条目跨越多行,想要一种简单的方法来拆分它,顺便说一句,拆分命令将不起作用,因为它不知道一行中有多少列而且会剪错。

import os
import pandas as pd
import numpy as np

data_root = r"/home/glauber/Projetos/nlp/"
fname = r"blogset-br.csv.gz"
this_file = os.path.join(data_root,fname)
assert os.path.exists(this_file), this_file
this_file

column_names = ['postid', 'blogid', 'published', 'title', 'content', 'authorid', 'author_displayName', 'replies_totalItems', 'tags']
parse_dates = ['published']
df_iterator = pd.read_csv(this_file,
                          skiprows=0,
                          compression='gzip',
                          chunksize=1000000,
                          header=None,
                          names = column_names,
                          parse_dates=parse_dates,
                          index_col=1)

new_df = pd.DataFrame()
count = 0
for df in df_iterator:
    filename = 'blogset-br-' + str(count ) + '.csv'
    df.to_csv(filename)
    count += 1

这是我能找到的最简单的方法

使用 XSV (https://github.com/BurntSushi/xsv) 非常简单:

xsv split -s 10000 ./outputdir inputFile.csv

-s 10000设置写入每个块的记录数。