You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历列数不同的Parquet文件,如何通过列名映射索引获取指定列最大值

批量获取不同Parquet文件中指定列的最大值

核心思路是先通过文件元数据建立列名与索引的映射,再根据目标列名动态获取对应索引,进而读取统计值,具体实现步骤如下:

  • 遍历所有目标Parquet文件路径
  • 对每个文件,解析元数据中的列名列表,定位列'A'的索引
  • 通过该索引获取对应列的统计信息,提取最大值

示例代码(基于pyarrow库)

import pyarrow.parquet as pq
import os

# 替换为你的目标文件路径列表或目录
file_paths = ["/path/to/file1.parquet", "/path/to/file2.parquet"]

for file_path in file_paths:
    if not os.path.exists(file_path):
        print(f"文件 {file_path} 不存在,跳过")
        continue
    # 读取Parquet文件元数据
    parquet_file = pq.ParquetFile(file_path)
    # 提取所有列名
    column_names = [col.name for col in parquet_file.schema]
    try:
        # 动态获取列'A'的索引
        col_a_index = column_names.index('A')
        # 获取该列的最大值
        max_value = parquet_file.metadata.row_group(0).column(col_a_index).statistics.max
        print(f"文件 {file_path} 中列'A'的最大值: {max_value}")
    except ValueError:
        print(f"文件 {file_path} 中不存在列'A',跳过")

关键说明

  • 借助parquet_file.schema获取文件完整列结构,通过列表推导式提取所有列名
  • 用list.index('A')快速定位目标列索引,若文件不含该列会抛出ValueError,需捕获处理
  • 保留原代码读取统计值的逻辑,仅将固定索引替换为动态获取的索引

内容的提问来源于stack exchange,提问作者Lagos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:17:33