如何使用dplyr和RPostgreSQL将r连接到redshift?

时间:2016-10-11 05:20:20

标签: r dplyr amazon-redshift rpostgresql

我正在尝试使用基于https://blogs.aws.amazon.com/bigdata/post/Tx1G8828SPGX3PK/Connecting-R-with-Amazon-Redshift的方法的dplyr和RPostgreSQL将R连接到Redshift

现在我知道我的数据库,主机端口,用户和密码。所以,这是我的代码:

> myRedshift <- src_postgres('aaa',
                            host = 'aaa-aaa-aaa.com',
                            port = 8000,
                            user = "xy", 
                            password = "xy")

运行此行后,我有一个列表myRedshift。看起来很好。但是,当我跑:

  a <- tbl(myRedshift, "base_posdata")

问题是:数据库aaa包含几个文件夹,如a1,a2,a3。表base_posdata位于a1下。所以应该是这样的:

a <- tbl(myRedshift, "a1//base_posdata")

当然格式不正确。所以当我使用上面的代码时(&lt; -tbl(myRedshift,“base_posdata”)) ),我有错误信息:

Error in postgresqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not Retrieve the result : ERROR: relation "base_posdata" does not exist)

我想这是因为我没有提供正确的道路。 谁能告诉我怎么做?非常感谢。

1 个答案:

答案 0 :(得分:1)

找到解决这个问题的方法:使用sql:

> a <- tbl(myRedshift, sql("SELECT * FROM aaa.a1.base_posdata"))

问题解决了