我正在使用软件包“ RPostgreSQL”将R连接到Amazon Redshift。我可以连接,创建和删除表,查询数据库,将数据保存到R数据框中并手动插入值。
我不能做的是直接从R数据帧中将数据插入Redshift读取,并且由于redshift中缺少Posgress组件而无法使用dbWriteTable函数。
我究竟做错了什么?
在此先感谢您的帮助!
只需使用RODBC包自己解决即可。
您需要建立一个ODBC连接,即所谓的redshift_con。从R开始,您需要使用以下命令创建连接(我称为ch):
ch <- odbcConnect("Annalect DB", uid = "username", pwd = "******")
Run Code Online (Sandbox Code Playgroud)
将我的数据框加载到R中并运行:
sqlSave(ch, mydataframename, addPK = TRUE, verbose = TRUE)
Run Code Online (Sandbox Code Playgroud)
并且R在redshift中创建一个名为“ 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)
Run Code Online (Sandbox Code Playgroud)
我将对处理速度发表评论。
更新
仅适用于非常少量的数据
半小时记录1500条记录。
| 归档时间: |
|
| 查看次数: |
3005 次 |
| 最近记录: |