Python中Polars.read_csv使用文件对象时的性能警告消除方案
解决Polars读取CSV时的性能提示问题
最优方案:直接传入文件路径(推荐)
Polars原生支持读取gzip压缩文件,无需手动通过gzip.open打开文件句柄,直接传入文件路径即可消除提示,同时获得更好的性能:
df = pl.read_csv( os.path.join(getParameters()['rdir'], dataset), sep='\t', ignore_errors=True, compression='gzip' # 也可以省略,Polars会自动识别压缩格式 )
当传入文件路径而非文件对象时,Polars能利用底层优化(比如内存映射、并行读取等),这正是提示建议的最优使用方式,同时自然消除了那条性能提示。
备选方案:若必须使用文件对象,屏蔽提示输出
如果因特殊需求必须保留文件句柄的读取方式,可以通过调整Polars的日志级别屏蔽这类提示。这类性能提示属于INFO级别的日志输出,将日志级别调高至ERROR即可:
import logging # 屏蔽Polars的INFO级提示 logging.getLogger("polars").setLevel(logging.ERROR) # 执行原读取逻辑 with gzip.open(os.path.join(getParameters()['rdir'], dataset)) as compressed_file: df = pl.read_csv(compressed_file, sep='\t', ignore_errors=True)
注意:这种方式仅屏蔽提示,无法获得传入文件路径带来的性能提升,因此优先推荐第一种方案。
内容的提问来源于stack exchange,提问作者Joris-Karl Huysmans
相关产品推荐
相关产品推荐

