使用python从镶木地板文件中提取列名称和数据类型

时间:2020-10-07 00:42:16

标签: python-3.x parquet pyarrow

我有数百个实木复合地板文件,我想将列名和关联的数据类型放入Python列表中。我知道我可以获得模式,它以以下格式出现:

COL_1: string
   -- field metadata --
   PARQUET:field_id: '34'
COL_2: int32
   -- field metadata --
   PARQUET:field_id: '35'

我只想要:

COL_1 string
COL_2 int32

1 个答案:

答案 0 :(得分:0)

为了从拼花地板转到箭头(反之亦然),在PARQUET键下将一些元数据添加到了模式

您可以轻松删除元数据:

table = pa.Table.from_arrays(
    [pa.array([1,2]), pa.array(['foo', 'bar'])],
    schema=pa.schema({'COL1': pa.int32(), 'COL2': pa.string()})
)
pq.write_table(table, '/tmp/table.pq')
parquet_file = pq.ParquetFile('/tmp/table.pq')

schema = pa.schema(
    [f.remove_metadata() for f in pqf.schema_arrow])
schema

这将打印:

COL1: int32
COL2: string

请记住,如果您开始编写自己的元数据,则只想删除PARQUET键下的元数据。