小编Chr*_*ood的帖子

使用 Parquet 文件处理 Arrow 中的 UUID 值

我是 Python 和 Pandas 的新手 - 请温柔一点!

我使用 SqlAlchemy 和 pymssql 对 SQL Server 数据库执行 SQL 查询,然后将结果集转换为数据帧。然后我尝试将此数据帧写入 Parquet 文件:

  engine = sal.create_engine(connectionString)

  conn = engine.connect()
  df = pd.read_sql(query, con=conn)
  df.to_parquet(outputFile)
Run Code Online (Sandbox Code Playgroud)

我在 SQL 查询中检索的数据包括一个uniqueidentifier名为 的列(即 UUID)rowguid。因此,我在上面的最后一行收到以下错误:

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')
Run Code Online (Sandbox Code Playgroud)

有什么方法可以强制所有 UUID 在上述事件链中的任何点都串起来吗?

一些额外的注意事项:

  • 这部分代码的目标是接收 SQL 查询文本作为参数并充当通用 SQL 到 Parquet 函数。
  • 我意识到我可以做类似的事情df['rowguid'] …

python pandas pyarrow

12
推荐指数
1
解决办法
2899
查看次数

标签 统计

pandas ×1

pyarrow ×1

python ×1