如何使用DuckDB查看Parquet文件中的用户自定义Schema
DuckDB无法读取Parquet文件的自定义Schema元数据
我已通过Python验证Parquet文件的自定义Schema元数据符合预期,但在DuckDB中无法获取这些自定义信息。执行以下两个查询均无法返回自定义Schema内容:
select * from parquet_schema('FileWithMetadata.parquet')
select * from parquet_metadata('FileWithMetadata.parquet')
更新内容
写入自定义元数据的Python代码
以下代码将包含多场景流域日流量数据的Pandas DataFrame转换为带自定义Schema的Parquet文件:
import pyarrow as pa import pyarrow.parquet as pq # a为包含流域日流量模拟数据的Pandas DataFrame table = pa.Table.from_pandas(a) my_schema = pa.schema([ pa.field("Flow", "float", True, metadata={"data":"日流量(单位:毫米/天)"}), pa.field("DayIndex", "int64", False, metadata={"data":"日期索引"}), pa.field("BasinIndex", "string", True, metadata={"data":"日流量(单位:毫米/天)"}), pa.field("Simulation", "int64", True, metadata={"data":"模拟编号"}) ], metadata={"info":"长格式流域流量数据"}) t2 = table.cast(my_schema) pq.write_table(t2, 'SHALongWithMetadata1.parquet')
读取Parquet元数据的Python代码
import pyarrow.parquet as pq pfile = pq.read_table("C:\Projects\CSDP\PythonCSDP\Parquet\SHALongWithMetadata1.parquet") print("列名: {}".format(pfile.column_names)) print("Schema: {}".format(pfile.schema))
Python读取输出结果
列名: ['Flow', 'DayIndex', 'BasinIndex', 'Simulation'] Schema: Flow: float -- 字段元数据 -- data: '日流量(单位:毫米/天)' DayIndex: int64 not null -- 字段元数据 -- data: '日期索引' BasinIndex: string -- 字段元数据 -- data: '日流量(单位:毫米/天)' Simulation: int64 -- 字段元数据 -- data: '模拟编号' -- Schema元数据 -- info: '长格式流域流量数据'
内容的提问来源于stack exchange,提问作者rbmales
相关产品推荐
相关产品推荐

