2017-04-19 41 views
0

我使用R從我的工作站遠程連接到Redshift。使用R將Redshift中的CSV導出爲CSV PostGreSQL

install.packages("RPostgreSQL") 
library (RPostgreSQL) 

drv <- dbDriver("PostgreSQL") 

con1 <- dbConnect(drv, host="url", port="xxxx", 
        dbname="db_name", user="id", password="password") 

dbGetInfo(con1) 

然後我創建一個表:

dbSendQuery(con1, "create table schema.table_name as select * from schema.table_name;") 

現在我想將這個表導出到.csv文件我的工作站上,如何做到這一點?同樣,我沒有在我的工作站上安裝PostGres數據庫,只使用R來訪問它。

此外,此表是大型,4列,1400萬行。

謝謝!

回答

0

您需要將查詢結果下拉到本地對象中,然後將該對象轉儲爲CSV。沿着res <- dbSendQuery(con1, "select * from schema.table_name"); dat <-dbFetch(res); readr::write_csv(dat, "~/output.csv")行的東西應該讓你開始。

0

我發佈後想通了這一點 - 共享..

system.time(fwrite(dbReadTable(con1, c("schema","table")), file="file.csv", sep=",", na="", row.names=FALSE, col.names=TRUE)) 

我聽到的羽毛是更快?

這是針對4列43萬行,耗時15分鐘。