Не удается найти функцию src_dbi в R - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь использовать R для доступа к postgresql db на Heroku, и я обнаружил, что могу использовать src_dbi из пакета dplyr.

Я правильно установил dplyr, но когда я пытаюсь вызвать src_dbi, я получаюсообщение об ошибке:

Error in src_dbi(db_con) : could not find function "src_dbi"

Это происходит правильно, когда я запускаю:

db <- src_dbi(db_con)

после подтверждения учетных данных:

config <- run("heroku", c("config:get", "postgres://xxxxxxxxxxxxxx
", "-a", "prjectAlpha"))
pg <- httr::parse_url(config$stdout)
dbConnect(RPostgres::Postgres(),
          dbname = "xxxxxxxxxx",
          host = "xxxxxxxxx.amazonaws.com",
          port = 5432,
          user = "xxxxxx",
          password = "xxxxxxxxxxxxxxxxx",
          sslmode = "require"
) -> db_con

Идея заключается в возможности загрузкитаблицу и повторно загрузите ее после внесения нескольких изменений с помощью R.

1 Ответ

0 голосов
/ 29 апреля 2019

Мое решение для доступа к Heroku Postgresql от R:

library(dbplyr) #in case you have an error, run: system("defaults write org.R-project.R force.LANG en_US.UTF-8")  from Rails console, then restart R.
library(processx)
library(RPostgres)
library(httr)
library(tidyverse)
library(dplyr)

config <- run("heroku", c("config:get", "postgres://xxxxxxxxxxxxxx
", "-a", "prjectAlpha"))
pg <- httr::parse_url(config$stdout)
dbConnect(RPostgres::Postgres(),
          dbname = "xxxxxxxxxx",
          host = "xxxxxxxxx.amazonaws.com",
          port = 5432,
          user = "xxxxxx",
          password = "xxxxxxxxxxxxxxxxx",
          sslmode = "require"
) -> db_con

Как только соединение установлено:

db <- src_dbi(db_con)

После того, как соединение установлено, проверьте наличие доступных таблиц

db

Теперь настало время для извлечения данных

Многие примеры показывают обработку только из коллекции, но может быть просто интересно прочитать таблицы.У меня есть таблица с именем "weather_records"

weather_records_local_df <- tbl(db_con, "weather_records")
df <- collect(weather_records_local_df)

Затем делайте с данными то, что вы хотите.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...