1

我正在尝试将我的数据框中的记录插入到存储在 Hive 集群上的现有表中。我无法使用 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 SELECT 因为 INSERT INTO VALUES 因为我的数据中的模式可以在未来改变,并且有了这种依赖关系,我只需要更改我的数据库表。

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

CAUSED BY: Exception: Syntax error

我该如何解决我的问题?

4

1 回答 1

1

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

于 2020-05-02T17:31:16.147 回答