Python Twarc2处理大文件卡顿,咨询处理行数上限及解决方案
Twarc2处理大规模数据集hydrate卡顿问题解决方案
核心结论
Twarc2本身没有硬性的行数处理上限,大数据集卡顿主要源于Twitter API的速率限制、本地硬件资源瓶颈或网络稳定性问题,而非工具本身的行数限制。
卡顿原因分析
- Twitter API v2的hydrate接口存在严格的速率限制:每15分钟窗口内最多允许900次批量请求,每次请求最多处理100条ID,即每15分钟最多可处理9万条记录。230多万条数据需要持续数小时甚至更久的请求周期,期间可能因API限流、网络波动导致程序看似卡顿。
- 本地资源不足:处理超大规模数据集时,内存缓存堆积、CPU负载过高会拖慢程序运行效率,甚至导致假死。
建议解决方案
- 必须拆分数据集:将原CSV文件拆分为多个小文件(建议每5万-10万条记录为一个文件),分批执行hydrate操作。
- 拆分命令(Linux/macOS):
split -l 50000 2020-03-22_clean-dataset_csv.csv split_file_ - 分批处理示例:
twarc2 hydrate split_file_aa > hydrated_aa.jsonl twarc2 hydrate split_file_ab > hydrated_ab.jsonl # 依次处理所有拆分后的文件
- 拆分命令(Linux/macOS):
- 启用缓存机制:添加
--cache参数,避免重复请求已成功hydrated的ID,中途中断后可从断点继续:twarc2 hydrate --cache 2020-03-22_clean-dataset_csv.csv > hydrated.jsonl - 后台运行任务:使用
nohup(Linux/macOS)或PowerShell后台任务,避免终端关闭导致进程中断:nohup twarc2 hydrate split_file_aa > hydrated_aa.jsonl 2>&1 &
内容的提问来源于stack exchange,提问作者frogger
相关产品推荐
相关产品推荐

