如何通过命令行工具读取Feather文件的行列数?
高效获取Feather文件行列数的方案
方案1:用PyArrow读取元数据(内存友好)
Feather基于Apache Arrow格式,用PyArrow可以直接读取文件元数据,无需加载整个数据集,内存占用极低,速度极快。代码示例:
import pyarrow.feather as feather filename = "jan_records.feather" # 内存映射模式打开文件,避免全量加载 table = feather.read_table(filename, memory_map=True) row_count = table.num_rows col_count = table.num_columns print(f"记录数:{row_count},列数:{col_count}")
memory_map=True参数会让PyArrow直接映射磁盘文件到内存,不会把整个数据集加载到RAM里,对大文件特别友好。
方案2:命令行直接查看(无需写脚本)
用PyArrow自带的命令行工具可以直接查看Feather文件的元数据,包括行列数,不用写Python脚本:
pyarrow inspect feather jan_records.feather
执行后会输出类似以下的元数据信息,里面直接包含num_rows和num_columns字段:
File format: Feather V2
Metadata:
num_rows: 6500000
num_columns: 20
...(其他元数据)
为什么原来的方法效率低?
pandas.read_feather会把整个Feather文件加载成DataFrame,600-1000万条记录的数据集会占用大量内存,导致加载慢且消耗算力。而上面两种方法都是只读取文件的元数据块,不需要加载实际的内容,所以效率提升非常明显。
内容的提问来源于stack exchange,提问作者FDX
相关产品推荐
相关产品推荐

