【发布时间】:2021-09-14 04:44:41
【问题描述】:
我在将大型 csv 转换为镶木地板时收到 CSV column #10: CSV conversion error to string: invalid UTF8 data。从错误的外观来看,由于存在无效的 utf-8 字符,因此似乎无法将适当的列数据转换为 String 类型。
也许这可以通过在 pyarrow.ReadOptions 中使用正确的编码方案来解决。但我很想知道导致错误的线路。
由于它是一个包含数百万行的大文件,我无法识别导致错误的行。
pyarrow read_csv 函数中是否有任何选项来报告坏行?或者如果我们可以用NAN OR NULL 替换那个特定的单元格会更好。
【问题讨论】:
-
你有可重现的例子吗?您可以添加此选项
convert_options=csv.ConvertOptions(column_types={"#10": pa.binary()})。它将“#10”列视为二进制字符串。然后,一旦加载了数据,您就可以尝试找出哪一行不兼容 utf8。不幸的是,箭头没有compute函数来检查字符串是否是有效的 utf-8 数据(据我所知),所以你必须手动运行检查。