如何使用R和dplyr从Redshift中检索超过100000行

Luc*_*ucy 4 r rpostgresql amazon-redshift dplyr

我正在分析来自Redshift数据库的数据,使用每个dplyr的连接在R中工作 - 这有效:

my_db<-src_postgres(host='my-cluster-blahblah.redshift.amazonaws.com', port='5439', dbname='dev',user='me', password='mypw')
mytable <- tbl(my_db, "mytable")

viewstation<-mytable %>%
    filter(stationname=="something") 
Run Code Online (Sandbox Code Playgroud)

当我尝试将该输出转换为数据框时,所以:

thisdata<-data.frame(viewstation)
Run Code Online (Sandbox Code Playgroud)

我收到错误消息,警告消息:

Only first 100,000 results retrieved. Use n = -1 to retrieve all. 
Run Code Online (Sandbox Code Playgroud)

我应该在哪里设置n?

phi*_*ver 7

而不是使用

thisdata<-data.frame(viewstation)
Run Code Online (Sandbox Code Playgroud)

使用

thisdata <- collect(viewstation)
Run Code Online (Sandbox Code Playgroud)

collect()会将数据库中的所有数据拉回R.如DPLYR :: databases晕影中所述:

使用数据库时,dplyr尝试尽可能地保持懒惰.它在两个方面很懒惰:

除非您明确要求,否则它永远不会将数据拉回R.

它会延迟完成任何工作,直到最后一刻,收集您想要做的所有事情,然后一步将其发送到数据库.