You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sqldf的read.csv.sql读取90GB大CSV遇列数不匹配问题求助

解决read.csv.sql处理含逗号字符串的CSV文件问题

遇到这类列数不匹配的错误,核心是让read.csv.sql正确识别被引号包裹的含分隔符的单元格,具体操作如下:

  • 明确指定quote参数,匹配你CSV文件中用来包裹特殊字符串的引号类型:
    如果你的CSV用双引号包裹含逗号的字符串,用这段代码:

    library(sqldf)
    read.csv.sql('/data/test.csv', 
                 sql = "select count(*) from file",
                 quote = "\""
                 )
    

    如果是单引号包裹,就把quote参数改为"'":

    library(sqldf)
    read.csv.sql('/data/test.csv', 
                 sql = "select count(*) from file",
                 quote = "'"
                 )
    
  • 若仍有问题,可以同时明确指定分隔符sep = ",",确保程序正确识别列分隔:

    library(sqldf)
    read.csv.sql('/data/test.csv', 
                 sql = "select count(*) from file",
                 sep = ",",
                 quote = "\""
                 )
    

原理:默认情况下,sqlite的导入逻辑可能没有自动识别被引号包裹的含分隔符内容,通过quote参数告诉程序哪些字符是单元格的边界标记,这样即使单元格内有逗号,也会被当作完整的单元格内容处理,不会被误判为列分隔符。

内容的提问来源于stack exchange,提问作者ph_9933

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:51:13