我有一个5gig的csv文件(也作为一个sas数据文件,如果它更容易)我需要放入一个sql数据库,所以我可以在R中使用它
变量名称都包含在第一个观察行中,并且是双引号.有1000个变量,其中一些是数字的其他字符(虽然一些字符变量是数字字符串,但我不太担心它我可以在R中修复它).
我的问题是如何将csv文件导入到我的数据库中的新表中,而且痛苦程度最小?
我发现事情首先要创建你的表(包括指定所有变量,我有1000个),然后使用“.import文件表”来引入数据.
或者,使用一些gui导入向导,这对我来说不是一个选项.
对不起,如果这是sql 101,但感谢您的帮助.
这是我的工作流程:
原文链接:https://www.f2er.com/bash/387174.htmllibrary("Rsqlite") setwd("~/your/dir") db <- dbConnect(sqlite(),dbname="your_db.sqlite") ## will make,if not present field.types <- list( date="INTEGER",symbol="TEXT",permno="INTEGER",shrcd="INTEGER",prc="REAL",ret="REAL") dbWriteTable(conn=db,name="your_table",value="your_file.csv",row.names=FALSE,header=TRUE,field.types=field.types) dbGetQuery(db,"CREATE INDEX IF NOT EXISTS idx_your_table_date_sym ON crsp (date,symbol)") dbDisconnect(db)
field.types不是必需的.如果您不提供此列表,Rsqlite将从标题中猜测.索引也不是必需的,但稍后会加快查询速度(如果为查询索引正确的列).