我面临 pandas.to_sql() 的问题。
我的数据库:ibm db2 (bigsql)
table : 存储为 parquet 的 hadoop 表
我连接到 bigsql 并通过这样的熊猫从其他数据库加载一些数据。
read = pd.read_sql(text(item['load_sql']),session.bind) read.to_sql(table_,dst_session.bind,schema='dev',if_exists='append',chunksize=1424, index=False, method='multi')
当 chunksize 小于 1425 时一切正常,但是当它的 1425 或更高时出现错误:(ibm_db_dbi.ProgrammingError) ibm_db_dbi::ProgrammingError: Exception('Statement Execute Failed: [IBM][CLI Driver] 参数数量错误。 SQLSTATE=07001 SQLCODE=-99999')
我认为它与 sql 命令字符串大小无关,因为 chunksize=1424 甚至不是 1 mb。
使用 db2 / hadoop 是否对块大小有某种限制?有人知道为什么我会收到这个错误吗?
已解决?:我不再使用 to_sql() - 我将整个插入命令创建为字符串并将其发送到数据库。似乎该选项的唯一限制是字符串大小,但插入速度提高了,我可以在此命令中放入比之前允许的块大小更多的行。