在sqldf :: read.csv.sql()

时间:2018-06-19 21:52:36

标签: r sqldf

sqldf::read.csv.sql() 函数retrieving only a small portion of a large CSV很有用。
但是,该连接保持打开状态,并最终生成以下警告(运行几次后):

  

警告消息:

     

关闭未使用的连接11(C:\ Users \ wibeasley \ AppData \ Local \ Temp \ asfasdf \ fileasdfasdfasdf)

四年前,发布recommended base::closeAllConnections()。 是否有更新的方法来选择性地仅关闭由sqldf::read.csv.sql()创建的连接?

path <- tempfile()
write.csv(mtcars, file=path, row.names=F)
# read.csv(path)

ds <- sqldf::read.csv.sql(path, "SELECT * FROM file", eol="\n")
base::closeAllConnections() # I'd like to be more selective than 'All'.

unlink(path)

真正的代码是中间两行。前三行设置了伪装文件。最后的base::unlink()删除临时CSV。

我尝试通过现有文件连接(以便以后可以显式关闭它)的尝试显然在多次运行时仍保持连接打开:

  

警告消息:

     

1:在.Internal(sys.call(which))中:关闭未使用的连接13()

path <- tempfile()
write.csv(mtcars, file=path, row.names=F)

ff <- base::file(path)                              # Create an explicit connection.
ds <- sqldf::read.csv.sql(sql="SELECT * FROM ff") 
base::close(ff)

unlink(path)     

0 个答案:

没有答案