python - 用 python 和 pandas 传输和写入 Parquet 得到时间戳错误

标签 python pandas parquet

我试图在 python 中用 pandas concat() 两个 Parquet 文件。
它可以工作,但是当我尝试写入数据框并将其保存到 Parquet 文件时,它显示错误:

 ArrowInvalid: Casting from timestamp[ns] to timestamp[ms] would lose data:

我检查了文档。 pandas 的 parquet 文件默认使用毫秒时间戳语法。
如何在 concat 后使用使用过的模式将 parquet 文件白色化?
这是我的代码:

import pandas as pd

table1 = pd.read_parquet(path= ('path.parquet'),engine='pyarrow')
table2 = pd.read_parquet(path= ('path.parquet'),engine='pyarrow')

table = pd.concat([table1, table2], ignore_index=True) 
table.to_parquet('./file.gzip', compression='gzip')

最佳答案

自至少 v0.22 以来,Pandas 已经将未知的 kwargs 转发给底层的 Parquet 引擎。因此,使用 table.to_parquet(allow_truncated_timestamps=True) 应该有效——我针对 pandas v0.25.0 和 pyarrow 0.13.0 验证了它。有关更多关键字,请参阅 the pyarrow docs .

关于python - 用 python 和 pandas 传输和写入 Parquet 得到时间戳错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53893554/

相关文章:

python - 从除一列以外的所有列中删除逗号

python - 加快 Pandas 应用或使用 map

python - Matplotlib 饼图作为散点图

apache-spark - 如何在Spark中分区和写入DataFrame而不删除没有新数据的分区?

python - 如何用 Playwright Python 异步打开多个页面?

python - 我可以使用 %f 和 %d 将 float 和整数格式化为列表中的字符串吗?

hadoop - Apache Avro - 内部表示

apache-spark - Spark/Parquet 分区是否保持顺序?

python - 用继承的类替换类方法的返回类型

python - 从 cx_Oracle 内部使用 SQL*PLUS COPY?