我刚接触Python和熊猫-请温柔一点
我正在使用SqlAlchemy和pymssql对SQLServer数据库执行SQL查询,然后将结果集转换为数据帧。然后,我尝试将此数据帧作为拼花文件写入:
engine = sal.create_engine(connectionString)
conn = engine.connect()
df = pd.read_sql(query, con=conn)
df.to_parquet(outputFile)
我在SQL查询中检索的数据包括一个名为rowguid
的uniqueidentifier
列(即UUID)。因此,我在上面的最后一行中得到以下错误:
pyarrow.lib.ArrowInvalid: ("Could not convert UUID('92c4279f-1207-48a3-8448-4636514eb7e2') with type UUID: did not recognize Python value type when inferring an Arrow data type", 'Conversion failed for column rowguid with type object')
是否有任何方法可以强制所有uuid在上述事件链中的任何一点使用字符串?
还有几个额外的注意事项:
df['rowguid'] = df['rowguid'].astype(str)
的事情,但这取决于我知道哪些列具有uniqueidentifier
类型。当它成为一个数据帧时,一切都是一个object
,每个查询都会不同李>char(36)
,但是,我希望做一些更“自动”的事情,这样编写查询的人就不会一直意外地遇到这个问题/不必记得总是转换数据类型李>有什么想法吗
目前没有回答
相关问题 更多 >
编程相关推荐