UNIX将LARGE csv导入SQLite

前端之家收集整理的这篇文章主要介绍了UNIX将LARGE csv导入SQLite前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个5gig的csv文件(也作为一个sas数据文件,如果它更容易)我需要放入一个sql数据库,所以我可以在R中使用它

变量名称都包含在第一个观察行中,并且是双引号.有1000个变量,其中一些是数字的其他字符(虽然一些字符变量是数字字符串,但我不太担心它我可以在R中修复它).

我的问题是如何将csv文件导入到我的数据库中的新表中,而且痛苦程度最小?

我发现事情首先要创建你的表(包括指定所有变量,我有1000个),然后使用“.import文件表”来引入数据.
或者,使用一些gui导入向导,这对我来说不是一个选项.

对不起,如果这是sql 101,但感谢您的帮助.

这是我的工作流程:
library("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将从标题中猜测.索引也不是必需的,但稍后会加快查询速度(如果为查询索引正确的列).

我一直在这里学习很多这样的东西,所以如果你在sqlite上查询我的问题/答案,你可能会发现一些有趣的东西.

原文链接:https://www.f2er.com/bash/387174.html

猜你在找的Bash相关文章