Python - вставить из выбора - Fom Pandas с помощью курсора - PullRequest
1 голос
/ 02 мая 2020

Я пытаюсь вставить записи из моего фрейма данных в существующую таблицу, которая хранится в кластере Hive. Я не могу использовать движок sqlalchemy, поскольку я использую соединение JDB C.

Мой код:

cursor = conn.cursor()
engine = sqlalchemy.create_engine('driver://', creator=conn)
dff = pd.DataFrame([[1, 2], ['process 1', 'process 2']], columns=['id', 'description'])
sql_query = "INSERT INTO default.my_table SELECT * FROM {0}".format(dff)
#dff.to_sql(name='my_table', schema='default', con=engine.connect(), if_exists='append')#I also tried this but it gives me error: 'Connection' object is not callable
cursor.execute(sql_query)

Я предпочитаю использовать INSERT INTO SELECT, поскольку INSERT INTO VALUES, потому что схема из мои данные могут измениться в будущем, и с этой зависимостью мне просто нужно изменить таблицы базы данных.

С моим текущим кодом я получил это:

CAUSED BY: Exception: Syntax error

Как мне решить мою проблема

1 Ответ

0 голосов
/ 02 мая 2020

dff - это объект, а не строка. Вы должны что-то вроде этого cursor.executemany(your_sql_statement, column_1, column_2, column_n)

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