如何将 CSV 文件拆分为多个块并在 Java 代码中并行读取这些块

2023-11-23

我有一个非常大的 CSV 文件(1GB+),它有 100,000 行。

我需要编写一个 Java 程序来解析 CSV 文件中的每一行,以创建要发送的 HTTP 请求的正文。

换句话说,我需要发送 100,000 个 HTTP 请求,这些请求与 CSV 文件中的行相对应。如果我在单个线程中执行这些操作将会很长。

我想创建 1,000 个线程来执行 i) 从 CSV 文件中读取一行,ii) 创建一个 HTTP 请求,其正文包含读取行的内容,以及 iii) 发送 HTTP 请求并接收响应。

这样,我需要将 CSV 文件拆分为 1,000 个块,并且这些块之间不应有重叠的行。

这种拆分过程的最佳方法是什么?


同时在多个位置读取单个文件不会让你的速度更快(但它可能会大大减慢你的速度)。

不是从多个线程读取文件,而是从单个线程读取文件,并并行化加工这些行。单个线程应该逐行读取 CSV,并将每一行放入队列中。然后,多个工作线程应该从队列中取出下一行,对其进行解析,转换为请求,并根据需要同时处理该请求。然后,工作的分割将由单个线程完成,确保没有丢失的行或重叠。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 CSV 文件拆分为多个块并在 Java 代码中并行读取这些块 的相关文章

  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv

随机推荐

  • JavaScript 中的两种方式哈希 JSON 字符串以在 URL 中使用

    我想获取一个 JSON 字符串并对其进行加密 哈希 编码 以便我可以将其放入 URL 中 使其类似于如下所示 var stringToEncode JSON stringify foo baz bar 1 2 3 4 5 baz fizzl
  • 在 WinForms 应用程序中嵌入视频

    我需要能够使用 C 在 WinForms 应用程序中嵌入并控制 AVI 文件的播放 视频需要嵌入到表单中 而不是在单独的媒体播放器窗口中启动 执行此操作的最佳方法是什么 我发现了 System Media 命名空间 这听起来很有希望 但似乎
  • 无法在 R Markdown 中使用 Rcpp 引擎

    我尝试过了Knit HTML以下 Rmd 文件 title Untitled author Florian Priv date 12 septembre 2016 output html document r fibCpp engine R
  • 在内存而不是文件系统中创建文件

    我正在使用 NET 库函数将文件上传到服务器 并将文件路径作为参数 我想要发送的数据很小并且是在运行时构建的 我可以将其保存到临时文件 然后上传 由于我的应用程序将部署在各种环境中 并且我不知道是否能够可靠地创建临时文件 因此最好能够传递到
  • 如何分发Java应用程序

    我想了解分发 Java 应用程序的各种选项 我知道你可以 分发源代码并让用户自己编译 或提供make文件等 将其打包成 JAR 并具有自解压档案 和 我确信 还有无数其他方式 我希望对最常见的选项 以及我没有想到的选项 进行一些解释 特别是
  • Chrome 扩展 + Devise + Rails 应用程序 - 从扩展发出经过身份验证的请求?

    我正在构建一个 Chrome 扩展程序 可以直接从浏览器创建联系人 而无需转到我的由 devise 驱动的 Rails 应用程序本身 Contacts Create 需要身份验证 因此我想知道如何从扩展程序发送经过身份验证的请求 我已启用设
  • .NET Core 未显示在 Visual Studio 2022 的目标框架下拉列表中

    我已经安装了 NET core 3 1 并验证了我可以在我的计算机上运行 NET core 3 1 应用程序 但是当我去创建新项目时 目标框架的下拉列表仅允许 NET 6 0 我正在使用 Visual Studio 2022 我在笔记本电脑
  • ASP.NET Web 服务器无法启动并且无法切换 Mono 环境

    我在跑步Monodevelop 的最新版本之一在 Linux Mint 上 在我格式化驱动器并进行全新安装之前 它曾经可以工作 当我构建项目时 它构建得很好 但是当我尝试运行它时 我收到以下消息 无法启动 ASP NET Web 服务器 找
  • 如何在CSS中将页脚粘贴到底部? [复制]

    这个问题在这里已经有答案了 我遇到了在浏览器底部定位页脚的经典问题 我尝试过的方法包括http ryanfait com resources footer stick to bottom of page 但没有什么好结果 我的页脚总是出现在
  • HTML中点击后如何保持选择?

    我正在编写一个 WYSIWYG 编辑器 不能使用像 TinyMCE 这样的东西 必须自己编写代码 并且我希望用户能够通过在 HTML 中添加标签来将文本设置为粗体 下划线 链接等 我遇到的问题是 当用户选择可编辑 div 中的文本 然后单击
  • Bash 检查是否存在不存在的文件?

    在 bash 中运行以下命令 stuff rpm ql
  • 使用 Eclipse + ADT 创建 Android 应用程序的“最小”源文件

    我试图使用 Eclipse ADT Android 开发工具包 来了解最小 Android 应用程序的结构 请您告知我需要的最小源文件集是什么 例如 src package MainActivity java res layout acti
  • Visual Studio 中的 Typescript AMD 模块

    我从使用 Visual Studio 2012 Ultimate 的 TypeScript 开始 我已经更改了 MSBuild 包括编译器命令中的 module amd 标记 编译器开始生成AMD模块 我在我的项目中包含了来自 Nuget
  • Python:乘法覆盖

    所以 我有一个自定义类 mul 与整数一起使用的函数 然而 在我的程序 在库中 中 它被以相反的方式调用 即2 x where x是我班的 有什么办法可以让它使用我的 mul 功能为此 只需将以下内容添加到类定义中即可 rmul mul
  • 返回匿名类型的简单方法(使使用 LINQ 的 MVC 成为可能)

    我想在使用 LINQ 特别是 LINQ to entities 的同时实现 MVC 我这样做的方法是让控制器使用 LINQ 生成 或调用生成的东西 结果集 然后将其返回到视图以显示数据 问题是 如果我这样做 return from o in
  • Xkb:如何将键码转换为键符号

    我只是尝试获取 KeyCode 和修饰符掩码 并使用 Xkb 扩展将其转换为 KeySym 我似乎无法弄清楚为什么这不起作用 很明显修饰符不匹配 但我不知道为什么 我什至不知道我是否正确转换了该组 include
  • 如何动态地将输入字段添加到表单中?

    我不是一个网络程序员 但我正在创建一个简单的网络应用程序 它有一个表单 用户可以在其中输入一系列点 x y z 但我不知道用户有多少即将进入 我不想猜测可能的最大值 也许是 100 并在表单上放置 100 个字段 因为它看起来很难看 当用户
  • 替换除字符串开头以外的所有字符(正则表达式)

    我正在尝试删除字符串数字中的所有减号 破折号 除了第一次出现之外 摆弄正则表达式 JavaScript 半小时后 仍然没有结果 有谁知道修复方法吗 Given 123 45 6 预期的 123456 Given 789 1 0 预期的 78
  • 为什么我的 TinyMCE 隐藏文本区域出现问题?

    我有大约7个textarea网页上的所有内容都是使用TinyMCE的富文本编辑器 然而 在页面加载时 只有其中 1 个可见 其余的则隐藏 用户可以单击 显示 链接 该链接将一一显示剩余的文本区域 但是 我有一个奇怪的问题 一切textare
  • 如何将 CSV 文件拆分为多个块并在 Java 代码中并行读取这些块

    我有一个非常大的 CSV 文件 1GB 它有 100 000 行 我需要编写一个 Java 程序来解析 CSV 文件中的每一行 以创建要发送的 HTTP 请求的正文 换句话说 我需要发送 100 000 个 HTTP 请求 这些请求与 CS