我有一个非常大的CSV文件(超过1GB),它有100,000行。
我需要编写一个Java程序来解析CSV文件中的每一行,以创建用于发送HTTP请求的正文。
换句话说,我需要发出100,000个与CSV文件中的行相对应的HTTP请求。如果我在单个线程中执行这些操作将非常漫长。
我想创建1,000个线程,以执行以下操作:i)从CSV文件读取一行,ii)创建一个HTTP请求,该请求的正文包含读取行的内容,并且iii)发送HTTP请求并接收响应。
这样,我需要将CSV文件拆分为1,000个大块,这些大块之间应该没有重叠的行。
进行拆分的最佳方法是什么?
同时读取多个位置的单个文件不会让您走得更快(但可能会大大降低您的速度)。
与其从多个线程读取文件,不如从单个线程读取文件,并并行 处理
这些行。单线程应逐行读取CSV,并将每一行放入队列中。然后,多个工作线程应从队列中取出下一行,进行解析,转换为请求,并根据需要并发处理请求。然后,将通过单个线程来完成工作拆分,确保没有丢失的行或重叠。
问题内容: 我有一个文件,我想用Java读取并将其拆分为(用户输入)输出文件。这是我读取文件的方式: 如何将文件拆分为文件? 注意-由于文件中的条目数约为100k,因此我无法将文件内容存储到数组中,然后将其拆分并保存到多个文件中。 问题答案: 由于一个文件可能很大,因此每个拆分文件也可能很大。 例: 源文件大小:5GB 数字分割:5:目的地 档案大小:每个1GB(5个档案) 即使我们有这样的内存,
问题内容: 我在python中有一个约5000行的csv文件,我想将其拆分为五个文件。 我为此写了一个代码,但是没有用 上面的代码创建了许多内容为空的文件。 如何将一个文件分成五个csv文件? 问题答案: 我建议你不要发明轮子。有现有的解决方案。来源在这里 像这样使用它:
问题内容: 基本上,我要进行下一步。 请参阅此相关问题。我想每100行发送一次处理行,以实现批量分片。 有关实现相关答案的问题是csv对象无法下标并且不能使用len。 我该如何解决? 问题答案: 只需将您的下标包装到即可。显然,这会在大型文件上中断(请参见下面的 更新 中的替代方法): 进一步阅读:如何在Python中将列表分成均匀大小的块? 更新1 (列表版本):另一种可能的方法是处理每个卡盘,
问题内容: 我已经解决了这些问题,但似乎仍然无法解决。我有一个文本文件,分为几行。每行包含5个数据,中间用“,”分隔。我正在尝试读取此文件并将信息拆分为以下形式的字符串数组: 请有人可以帮我解决一个简单的解决方案!?谢谢!!!:) 数据示例: 样例代码: 公共无效的readFile(){ 错误 07-24 06:26:56.524:E / AndroidRuntime(27203):致命例外:主要
我已经问了同样的问题,看起来不清楚。因此,让我以不同的方式问它。我有四个.csv个名为I_earthquake2016.csv I_earthquake2017.csv I_earthquake2018.csv I_earthquake2019.csv(不同年份的地震数据)它们都有相同的列,只是行数不同。我做了一些代码来读取其中一个文件,并制作直方图以查看每个月发生多少次地震。 问题: < li
问题概要:假设我有300 GB的数据正在AWS中的EMR集群上用火花处理。这些数据有三个属性,用于在Hive中使用的文件系统上进行分区:日期、小时和(比方说)另一个。我想以最小化写入文件数量的方式将此数据写入fs。 我现在正在做的是获取日期、小时、另一个时间的不同组合,以及有多少行构成组合的计数。我将它们收集到驱动程序上的列表中,并遍历列表,为每个组合构建一个新的DataFrame,使用行数重新分