4
我使用包“RPostgreSQL”将R连接到亚马逊Redshift我可以连接,创建和删除表,查询数据库,将数据保存到R数据框中并手动插入值。将数据从R数据集写入Redshift
我不能做的是将数据插入Redshift直接从R数据框中读取,并且由于在Redshift中丢失了Posgress组件,我无法使用dbWriteTable函数。
我在做什么错?
在此先感谢您的帮助!
我使用包“RPostgreSQL”将R连接到亚马逊Redshift我可以连接,创建和删除表,查询数据库,将数据保存到R数据框中并手动插入值。将数据从R数据集写入Redshift
我不能做的是将数据插入Redshift直接从R数据框中读取,并且由于在Redshift中丢失了Posgress组件,我无法使用dbWriteTable函数。
我在做什么错?
在此先感谢您的帮助!
只需使用RODBC包自行解决它。
您需要设置一个ODBC连接,我们称之为redshift_con。
ch <- odbcConnect("Annalect DB", uid = "username", pwd = "******")
装我的R中数据帧,并拼命地跑:
sqlSave(ch, mydataframename, addPK = TRUE, verbose = TRUE)
和R创造了红移一个新的表名为“ 从r比你需要创建一个连接使用(我把它叫做CH) mydataframename”。这不是很快,如果我找到并优化了方法,我会保持更新。
如果你需要更多信息,请参阅http://cran.r-project.org/web/packages/RODBC/index.html
################ SAMPLE CODE FOR TESTING ##############
install.packages("RODBC")
library('RODBC')
ch <- odbcConnect("redshift_con", uid = "admin", pwd = "********")
sqlColumns(ch, "public.r_test")
USArrest<-data(USArrests)
sqlSave(redshift_con, USArrests, rownames = "State", addPK = TRUE, verbose = TRUE)
我会后对处理速度的注释。
UPDATE
仅用于数据
半小时为1500年记录的非常小的量好。
没有任何Redshift的经验,我认为如果你提供了一些示例代码或一个不起作用的(最小)示例,你将更有可能得到答案。 – speendo 2014-09-11 09:27:28
@Speendo我运行的代码是: install.packages( “RPostgreSQL”) 库( “DBI”) 库( “RPostgreSQL”) DRV < - dbDriver( “PostgreSQL的”) redshift_con < - 数据库连接( drff2,凭证在这里....) r_c_100 < - dbSendQuery(redshift_con,“select * from public.dc_c limit 100”) r100 < - fetch(r_c_100,n = -1) dbWriteTable(redshift_con,“newTable”, r100) – 2014-09-11 10:06:29
@speedo我得到的错误是: 错误is(object,Cl): 在为函数'dbWriteTable'选择方法时评估参数'conn'时出错:错误:未找到对象'con' – 2014-09-11 10:16:59