我有几个可以为空的 Int64 列的镶木地板。当我读入 parquet 表,转换为 pandas,然后转换回 parquet 时,那些 Int64 列变为 Float64 (我假设是因为它们可以为空)。
pq_table = self.pq.read_table('path/to/file.parquet')
df = pq_table.to_pandas()
new_pq_table = self.pa.Table.from_pandas(df)
我不想将 Int64 转换为 Float64,所以我尝试指定架构-
pq_table = self.pq.read_table('path/to/file.parquet')
df = pq_table.to_pandas()
new_pq_table = self.pa.Table.from_pandas(df, schema=pq_table.schema)
导致以下错误 -
ArrowInvalid('浮点值被截断', 'notification_id 类型为 float64 的列转换失败')
我相信这正在发生to_pandas
。
如何告诉熊猫不要转换字段?