Импорт файлов из PostgreSQL в R

У меня большой набор данных, и я предварительно подготовлю некоторый анализ в программном обеспечении R. Хотя я не мог правильно импортировать данные в R.

Я получаю эту ошибку:

Error in postgresqlNewConnection(drv, ...) : RS-DBI driver: (could not connect [email protected] on dbname "Intel"

Я использовал PostgreSQL, чтобы открывать данные и как-то управлять им. Как импортировать существующие данные в PostgreSQL в программное обеспечение R?

Ответы

Ответ 1

drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host='localhost', port='5432', dbname='Swiss',
                 user='postgres', password='123456')

Кроме того, должен быть установлен пакет RPostgreSQL в R.

Ответ 2

Попробуйте R-пакет RPostgreSQL http://cran.r-project.org/web/packages/RPostgreSQL/. Вы можете увидеть, как использовать его в http://code.google.com/p/rpostgresql/. Пример:

library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")   ## loads the PostgreSQL driver
con <- dbConnect(drv, dbname="R_Project")   ## Open a connection 
rs <- dbSendQuery(con, "select * from R_Users")   ## Submits a statement
fetch(rs,n=-1)   ## fetch all elements from the result set
dbGetQuery(con, "select * from R_packages")   ## Submit and execute the query
dbDisconnect(con)   ## Closes the connection
dbUnloadDriver(drv)   # Frees all the resources on the driver

Ответ 3

Вы должны настроить две вещи на сервере PostgreSQL, прежде чем сможете удаленно подключиться. Это инструкция по настройке этого в Linux:

1. Найдите и настройте postgresql.conf, чтобы разрешить службе TCP принимать соединения с любого хоста, а не только localhost

find/-name "postgresql.conf"

В моей операционной системе Linux файл находится в /etc/postgresql/ 9.6/main/, поэтому я изменяю его там. Добавьте строку "listen_addresses = '*'" следующим образом:

/etc/postgresql/9.6/main/postgresql.conf

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
# insert the following line
listen_addresses = '*'

2. Найдите и настройте pg_hba.conf, чтобы разрешить соединение с клиентом с любого хоста

sudo find/-name "pg_hba.conf"

В моей операционной системе Linux файл находится в /etc/postgresql/ 9.6/main/, поэтому я изменяю его там. Добавьте строку "all all 0.0.0.0/0" следующим образом:

sudo nano/etc/postgresql/9.6/main/pg_hba.conf

# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
#
# insert the following line
host all all 0.0.0.0/0 trust

3. Остановить и запустить сервер

sudo service postgresql stop

sudo service postgresql start

4. Подключитесь к клиенту, теперь он должен работать.

УДАЧА!