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?
而不是使用
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.
它会延迟完成任何工作,直到最后一刻,收集您想要做的所有事情,然后一步将其发送到数据库.