Polars中使用scan_parquet扫描Parquet文件,如何获取扫描文件数量?
获取Polars扫描Parquet文件的数量
方法1:手动解析glob路径
先通过Python内置的glob模块获取所有匹配的文件路径,直接统计数量,还能提前确认具体文件:
import polars as pl import glob # 获取所有匹配的Parquet文件 file_paths = glob.glob("my/files/*.parquet") # 统计文件数量 file_count = len(file_paths) print(f"扫描到 {file_count} 个Parquet文件") # 基于获取到的路径创建LazyFrame df = pl.scan_parquet(file_paths)
方法2:从LazyFrame的逻辑计划提取
如果已经创建了LazyFrame,可以通过解析它的逻辑计划来获取文件信息:
# 生成逻辑计划字符串 plan = df.explain() # 从计划中提取文件路径(需根据Polars版本调整正则规则) import re file_paths = re.findall(r"'(my/files/.*?\.parquet)'", plan) # 去重后统计数量 file_count = len(set(file_paths)) print(f"扫描到 {file_count} 个Parquet文件")
注意:方法2依赖explain()的输出格式,不同Polars版本可能有差异,稳定性不如方法1。
内容的提问来源于stack exchange,提问作者blaylockbk
相关产品推荐
相关产品推荐

