Как загрузить файл данных pandas в базу данных IBM Db2 - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь загрузить файл данных pandas в файл данных IBM db2.Однако мне не удалось найти способ загрузить полный набор данных сразу.

import ibm_db
dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "BLUDB"
dsn_hostname= "dashdb-txn-xxxxx.eu-gb.bluemix.net"
dsn_port="5xx00"
dsn_protocol="TCPIP"
dsn_uid="xxxxx"
dsn_pwd="xxxx"

dsn = (
    "DRIVER={{IBM DB2 ODBC DRIVER}};"
    "DATABASE={0};"
    "HOSTNAME={1};"
    "PORT={2};"
    "PROTOCOL=TCPIP;"
    "UID={3};"
    "PWD={4};").format(dsn_database, dsn_hostname, dsn_port, dsn_uid, dsn_pwd)

try:
    conn = ibm_db.connect(dsn, "", "")
    print('Connected')
except:
    print('Unable to connect to database', dsn)

d = {'col1': [1, 2,3,4,5,6,7,8,9,10], 'col2': [3, 4,3,4,5,6,7,8,2,34], 'col3': [1, 2,3,14,5,36,72,8,9,10],}
import pandas as pd
df = pd.DataFrame(data=d)
df

Пока мне удается успешно подключиться к базе данных ibmdb2, остальные шаги по загрузке фрейма данных pandas мне не ясны, я пробовал несколько вариантов из Google, но ни один из них не работает.

Чтобы упростить задачу, я создал образец кадра данных для панд (df, выше).Любая страница помощи или документация приветствуется.

спасибо, пуджа

1 Ответ

0 голосов
/ 04 февраля 2019

Приведенный ниже код работал для меня с python 3.5.2 и 2.7.12, ibm_db_sa 0.3.4, с Db2 v11.1.4.4

Настройте параметры для .to_sql в соответствии с вашими требованиями.

При необходимости добавьте обработку исключений.

import ibm_db
import pandas as pd
from sqlalchemy import create_engine


dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "..."
dsn_hostname= "..."
dsn_port="60000"
dsn_protocol="TCPIP"
dsn_uid="..."
dsn_pwd="..."

d = {'col1': [1, 2,3,4,5,6,7,8,9,10], 'col2': [3, 4,3,4,5,6,7,8,2,34], 'col3': [1, 2,3,14,5,36,72,8,9,10],}

df = pd.DataFrame(data=d)

engine = create_engine('ibm_db_sa://'+ dsn_uid + ':' + dsn_pwd + '@'+dsn_hostname+':'+dsn_port+'/' + dsn_database )

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