Python - 从 select 插入 - 使用光标从 Pandas 插入

Python - Insert from select - Fom Pandas using cursor

我正在尝试将我的数据框中的记录插入存储在 Hive 集群上的现有 table。我无法使用 sqlalchemy 引擎,因为我使用的是 JDBC 连接。

我的代码是:

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 VALUES 以来,我更喜欢用户 INSERT INTO SELECT,因为我的数据的模式可以在未来改变,并且有了这种依赖性,我只需要改变我的数据库 tables .

使用我当前的代码,我得到了这个:

CAUSED BY: Exception: Syntax error

我该如何解决我的问题?

dff 是对象,不是字符串。你必须像这样 cursor.executemany(your_sql_statement, column_1, column_2, column_n)