Ошибка при передаче данных из кадра данных pandas в таблицу IBM DB2 - PullRequest
0 голосов
/ 05 октября 2018

Я могу установить соединение с db2, размещенным в IBM Cloud, но не могу скопировать df размера 40000 * 150 в таблицу.Вот код:

data = pd.read_excel("C:\Users\PranshuSahijwani\Desktop\kp\data@0409\Pharma_Automated_Snow.xlsx")
data.fillna("Others")

tuple_of_tuples = tuple([tuple(x) for x in data.values])
#values = ",".join([tuple(x) for x in subset])

cnn = ibm_db.connect("DATABASE=BLUDB;HOSTNAME=dashdb-txn-sbox-yp-lon02- 
01.services.eu-gb.bluemix.net;\
PORT=50000;PROTOCOL=TCPIP;UID=uid;PWD=pwd;", "", "")


start = time.time()
placeholders = ', '.join(['?'] * len(data.columns))  
insert_sql = "INSERT INTO zkb70555.regionsAndServers VALUES ( " + placeholders + ")"
stmt_insert = ibm_db.prepare(cnn, insert_sql)
ibm_db.execute_many(stmt_insert, tuple_of_tuples)

end = time.time()
print end-start

Я получаю сообщение об ошибке, как показано: enter image description here

Что необходимо изменить?

1 Ответ

0 голосов
/ 05 октября 2018

Массивы, переданные в execute_many, должны иметь одинаковые типы.Вышеуказанная ошибка указывает, что это может быть не так во вставленных данных.Драйвер проверяет данные перед отправкой запросов на сервер базы данных, и эта ошибка возвращается клиентом.

...