用sqldf读取csv

问题描述 投票:0回答:2

我用R读取大型csv文件时遇到了一些麻烦,所以我试图使用sqldf包来读取csv中的一些列或行。

我试过这个:

test <- read.csv.sql("D:\\X17065382\\Documents\\cad\\2016_mar\\2016_domicilio_mar.csv", sql = "select * from file  limit 5", header = TRUE, sep = ",", eol = "\n")

但我遇到了这个问题:

connection_import_file出错(conn @ptr,name,value,sep,eol,skip):RS_sqlite_import:D:\ X17065382 \ Documents \ cad \ 2016_mar \ 2016_domicilio_mar.csv 198361预计1列数据但找到2

r sqldf
2个回答
1
投票

如果您对使用哪种包装不太挑剔,data.table可以很好地满足您的需求

library(data.table)

file <- "D:\\X17065382\\Documents\\cad\\2016_mar\\2016_domicilio_mar.csv"

fread(file, nrows = 5)

0
投票

就像Shinobi_Atobe说的那样,来自data.table的fread()函数运行得非常好。如果您更喜欢使用基础R,您也可以使用:read.csv()read.csv2()

即:

read.csv2(file_path, nrows = 5)

那么“大文件”是什么意思? 1GB,10GB,100GB?


0
投票

这适合我。

require(sqldf)
df <- read.csv.sql("C:\\your_path\\CSV1.csv", "select * from file where Name='Asher'")
df
© www.soinside.com 2019 - 2024. All rights reserved.