首页 > 解决方案 > 如何解决与 zstandard 中使用的帧相关的错误,它需要太多内存来解码

问题描述

要下载与问题和答案相关的数据,我正在关注facebook/ELI5上的脚本。

那里说运行命令:python download_reddit_qalist.py -Q。在运行此命令时,我在 python 文件“download_reddit_qalist.py”的第 70 行收到错误,其中枚举了 zstandardDecompressor 对象。错误日志说:

zstd.ZstdError: Zstd 解压缩错误:帧需要太多内存来解码

考虑到内存问题,我为容器分配了 32 GB 内存以及 8 个 CPU。但是错误仍然存​​在。

当我用 ElementTree.iterparse() 替换 enumerate 函数时,伴随着这个错误,另一条消息加起来:

对于 ET.iterparse(f) 中的 i,l:

文件“/anaconda3/lib/python3.8/xml/etree/ElementTree.py”,第 1229 行,在迭代器中

数据 = source.read(100 * 2048)

zstd.ZstdError: zstd decompress error: Frame需要太多内存来解码

有没有人面临类似的错误?我在 slurm 集群上运行了 docker 容器。如果您需要更多信息,请告诉我。

标签: nlpredditquestion-answering

解决方案


zstdDecompressor(max_window_size=2147483648)

将来,如果有人遇到此错误,那么以上是纠正它的方法。

在文件 download_reddit_qalist.py 的第 66 行,可以更改。


推荐阅读