Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 由于包含CRLF(windows新行)的字段,CSV读取中出现Dask标记化错误_Python_Pandas_Dask - Fatal编程技术网

Python 由于包含CRLF(windows新行)的字段,CSV读取中出现Dask标记化错误

Python 由于包含CRLF(windows新行)的字段,CSV读取中出现Dask标记化错误,python,pandas,dask,Python,Pandas,Dask,我使用dask读取以LF结尾的行(\n)的csv,但某些多行字段包含CRLF(\r\n) 例如: 1234;Hello;47 1235;"Muli <====\r\n here line <====\r\n here field";42 1236;World;43 同一个文件适用于pandas read_csv,但我必须使用Dask,因为它速度更快 我尝试了多个blocksize值(默认值、64M和None),都失败了 我试图将\n和\r\n指

我使用dask读取以LF结尾的行(
\n
)的csv,但某些多行字段包含CRLF(
\r\n

例如:

1234;Hello;47
1235;"Muli  <====\r\n here
line        <====\r\n here
field";42
1236;World;43
  • 同一个文件适用于pandas read_csv,但我必须使用Dask,因为它速度更快
  • 我尝试了多个blocksize值(默认值、64M和None),都失败了
  • 我试图将
    \n
    \r\n
    指定为
    lineterminator
    参数,但均失败
有什么想法吗?

(我想一定有。重复,但我还没有找到它)

Dask从文件中独立读取每个数据块。在每个字节偏移量内,它首先读取以下
“\n”
,然后开始解析,以获得整行。这意味着无法判断
“\n”
字符是否在带引号的字符串中-唯一知道这一点的方法是从文件的开头进行解析

若要解决此问题,您需要编写一些自定义加载逻辑来查找并忽略它们(但如果在边界上发生这种情况会怎样?),或者首先运行文件以查找您认为合适的偏移量。一般来说,人们根本不在您的文件类型上使用阻止加载。

(我怀疑这一定有。重复,但我还没有尝试找到它)

Dask从文件中独立读取每个数据块。在每个字节偏移量内,它首先读取以下
“\n”
,然后开始解析,以获得整行。这意味着无法判断
“\n”
字符是否在带引号的字符串中-唯一知道这一点的方法是从文件的开头进行解析


若要解决此问题,您需要编写一些自定义加载逻辑来查找并忽略它们(但如果在边界上发生这种情况会怎样?),或者首先运行文件以查找您认为合适的偏移量。一般来说,人们根本不在您的文件类型上使用分块加载。

我在SO线程中读到了与您类似的答案,但为什么设置为“无”的分块大小不起作用,因为它应该在单个块中读取整个文件?我在SO线程中读到了与您类似的答案,但为什么设置为“无”的分块大小不起作用,因为它应该读取整个文件在一个街区?