如何处理数百个 CSV,每个 CSV 有数百万行?

数据挖掘 机器学习 情绪分析 数据库 CSV 文本过滤器
2022-02-23 22:19:01

因此,我正在对来自 IEEE 端口的 COVID-19 Tweets 数据集进行一个项目,我计划分析从 2020 年 3 月至今的时间段内的推文。问题是每个数据有 300 多个 CSV,每个数据都有数百万行。现在我需要先对所有这些推文进行水化,然后才能过滤它们。今天仅补充 1 个 CSV 就需要两个多小时。

我想知道是否有更有效的方法可以解决这个问题。是否可以将所有 CSV 合并为一个,然后将一个文件水化很长时间,或者如果每个文件花费这么长时间,我是否必须使用较小的数据集。

我刚刚开始处理现实生活中的数据,因此您可以将我视为真正的初学者,我们将不胜感激。谢谢!

1个回答

警告:我对 Twitter API 没有任何经验,所以我不知道是否有任何特定限制。

一般来说,对于大数据,假设目标是应用重复过程,最好将数据拆分成小块,以便该过程可以分布在多个核心上,最好使用计算集群。

然而,根据我的经验,在便利性和速度之间存在权衡:拆分数据并重新组装它(MapReduce)需要更多的操作,这意味着更多的手动工作(和可能的错误)或更多的代码来实现。这就是为什么我通常仅在易于实现或顺序计算太长时才考虑分布式设计的原因。

在您描述的情况下,处理包含所有数据的单个 CSV 大约需要 300x2=600 小时,大约需要 25 天......我可能会尝试直接并行处理文件。例如,如果您只能访问 8 个内核,则大约需要 300x2/8=75 小时,但如果您可以访问 40 个内核,则只需大约 15 小时,等等。

批处理的另一个优点是,如果在处理过程中出现错误,您不需要重新处理整个数据,而只需要重新处理失败的批次。