标签: rpostgresql

RPostgreSQL:日期时间转换为日期

我正在使用该RPostgreSQL包从 PostgreSQL 数据库加载数据。

问题是日期时间列 (POSIXct) 会自动转换为日期。

library(RPostgreSQL)

drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname="abc",host="def ",port=1234,user="ghi",password="jkl" )
Run Code Online (Sandbox Code Playgroud)

而不是使用这个:

df = dbGetQuery(con, "
    SELECT customer_id, dttm_utc
    FROM  schema.table;")
Run Code Online (Sandbox Code Playgroud)

我必须使用它:

df = dbGetQuery(con, "
     SELECT customer_id, to_char(dttm_utc, 'MM-DD-YYYY HH24:MI:SS') as dttm_utc,
     FROM  schema.table;")
Run Code Online (Sandbox Code Playgroud)

如果我不这样做,我就会失去时间,只能恢复日期。

我注意到如果我只想要前 1000 行,则不会发生此问题。当行数超过 300 000 时,它几乎一直出现。

我怎样才能解决这个问题 ?

postgresql r rpostgresql

6
推荐指数
0
解决办法
549
查看次数

如何通过 RPostgreSQL 执行 sql 查询文件

我正在使用该包通过 R 访问我的 PostgreSQL 数据库 (9.3) RPostgreSQL。我有一些非常长且大的 SQL 查询(从 raster2pgsql 生成的几个 MB 大)。

如何在 R 中将 sql 查询文件作为语句发送/执行?

正常方式

\i query.sql
Run Code Online (Sandbox Code Playgroud)

似乎无法通过dbSendQuery. 我尝试通过 读取整个 sql 文件作为字符向量readLines,但这也失败了,因为 dbSendQuery 显然只支持单个命令?

sql postgresql r rpostgresql

5
推荐指数
1
解决办法
4081
查看次数

用R的pool包重新连接到PostgreSQL数据库

我有一个用R plumber构建的API ,它使用RPostgreSQLpool连接到PostgreSQL数据库(尽管如果我使用的是Shiny应用程序,这也适用):

# create the connection pool
pool <- dbPool(
  drv = PostgreSQL(),
  host = Sys.getenv("DB_HOST"),
  port = 5432,
  dbname = "db",
  user = Sys.getenv("DB_USER"),
  password = Sys.getenv("DB_PASSWORD")
)

# start the API
pr <- plumb("plumber.R")

# on stop, close the pool
pr$registerHooks(
  list("exit" = function() { poolClose(pool) })
)
Run Code Online (Sandbox Code Playgroud)

我想每天导入新数据。最简单的方法是创建一个新数据库并将其推广到生产环境:

CREATE DATABASE db_new;
-- create the tables
-- bulk-insert the data
SELECT pg_terminate_backend (pid) FROM pg_stat_activity WHERE datname = 'db';
DROP DATABASE db; …
Run Code Online (Sandbox Code Playgroud)

postgresql r rpostgresql r-dbi plumber

5
推荐指数
1
解决办法
437
查看次数

在 R 中查询 PostgreSQL 数据库时,如何修复警告消息“关闭打开的结果集,取消先前的查询”?

下面是我在 R 中用于从 PostgreSQL 数据库中提取 ID 的代码片段。当我运行该函数时,我从 R 收到以下警告消息:

在 result_create(conn@ptr, statements) 中:关闭打开的结果集,取消之前的查询

options(warn=-1)如何避免出现此警告消息而不在代码开头 使用,抑制警告而不是

con <- dbConnect(RPostgres::Postgres(),
                 user = "postgres",
                 dbname  = "DataBaseName",
                 password  = "123456",
                 port  = 5431)


get_id <- function(connection, table){

  query <- toString(paste("SELECT id FROM ", table, sep = ""))
  data_extract_query <- dbSendQuery(connection, query)
  data_extract <- dbFetch(data_extract_query)
  return(data_extract)
}


get_id(con, "users") 

Run Code Online (Sandbox Code Playgroud)

postgresql r dbi rpostgresql

5
推荐指数
1
解决办法
3345
查看次数

RPostgreSQL安装错误 - RPostgreSQL.so:未定义符号:PQpass

我正在尝试安装R-Package RPostgreSQL,但是收到以下错误,

Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/usr/lib64/R/library/RPostgreSQL/libs/RPostgreSQL.so': /usr/lib64/R/library/RPostgreSQL/libs/RPostgreSQL.so: undefined symbol: PQpass Error: loading failed Execution halted ERROR: loading failed * removing ‘/usr/lib64/R/library/RPostgreSQL’

libpqpostgresql-dev安装.所有库文件都在目录中

/usr/lib64/pgsql/ 并且所有头文件都在目录中

/usr/include/pgsql/

Postgre版本 - 9.3.4 R版本 - 3.0.2 操作系统 -CentOS-6.4

我错过了一些小事,但无法找出为什么会发生这种情况.

我究竟做错了什么?怎么纠正这个?

谢谢 :)

postgresql r centos rpostgresql

4
推荐指数
2
解决办法
2397
查看次数

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

我正在分析来自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?

r rpostgresql amazon-redshift dplyr

4
推荐指数
1
解决办法
1223
查看次数

RPostgreSQL无法关闭连接

我有一个闪亮的应用程序,使用连接到数据库RPostgreSQL.在应用程序结束时,连接已关闭,驱动程序应卸载但我收到错误,警告我连接未关闭.

代码看起来像这样:

 # in the app.R file, but not in the server function:
 drv <- dbDriver("PostgreSQL")
 con <- dbConnect(drv, dbname = "database1",
                host = "localhost", port = 5432,
                user = "user", password = "pw")

# in the server function:
foo <- dbGetQuery(con, "SELECT * from table1")

# at the end of the server function to disconnect when the app is closed:
session$onSessionEnded(function(){
    dbDisconnect(con)
    dbUnloadDriver(drv)
})
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误消息:Error in postgresqlCloseDriver(drv, ...): RS-DBI driver: (There are opened connections -- close …

r rpostgresql

4
推荐指数
2
解决办法
8517
查看次数

RPostgreSQL - 将数据帧导入表中

我想将一个完整的数据框导出到一个已经在数据库(postgresql)中创建并包含类似数据的表中.

我发现几个问题解释有关dbwrite表(.... overwrite = TRUE),我不想覆盖我表中已经存在的数据.我只想用r console中的数据框更新我的表.

谁能让我知道我怎么能这样做..

这样的事情

dbInsertTable(con, df, tablename = "MyTable")
Run Code Online (Sandbox Code Playgroud)

r rpostgresql

4
推荐指数
1
解决办法
4146
查看次数

在 r 中查看 PostgreSQL 数据库中所有模式的列表?

我正在通过dplyrR 中的包连接和查询 PostgreSQL 数据库。我知道我可以使用dbListTables(con). 但是,我的表被组织成不同的模式。使用 R 查看数据库中存在的所有模式的最简单方法是什么?

r rpostgresql dplyr

4
推荐指数
1
解决办法
1235
查看次数

如何将数据从 PostgreSQL 数据库导入 R?

我正在考虑使用 package.json 将数据库中的数据直接导入到 r 中RPostgresQL。到目前为止,我曾经在Postico(PostgreSQL 客户端)软件中编写查询并导出为 csv,然后将 csv 文件导入 R。
这是我到目前为止所写的内容,不知道下一步如何进行。

library('RPostgreSQL')
pg=dbDriver("PostgreSQL")
con = dbConnect(pg, user="msahil515", password="",
            host="localhost", port=5432, dbname="msahil515")
Run Code Online (Sandbox Code Playgroud)

在此之后如何将数据库中的表加载到 R 中,或者如何在 R 中编写查询以仅从数据库中提取必要的数据?

postgresql r rpostgresql postico

4
推荐指数
1
解决办法
2413
查看次数

标签 统计

r ×10

rpostgresql ×10

postgresql ×6

dplyr ×2

amazon-redshift ×1

centos ×1

dbi ×1

plumber ×1

postico ×1

r-dbi ×1

sql ×1