使用 clojure-csv.core 解析巨大的 csv 文件

2024-02-21

到目前为止我有:

(:require [clojure-csv.core :as csv])
(:require [clojure.java.io :as io]))

(def csv-file (.getFile  (clojure.java.io/resource "verbs.csv")))

(defn process-csv [file]
  (with-open  [rdr  (io/reader file)]
    (csv/parse-csv rdr)))

但我越来越java.io.IOException: Stream closed。我在用Clojure-csv https://github.com/davidsantiago/clojure-csv它公开了两种方法,我正在使用第一种方法,parse-csv,医生说:

Takes a CSV as a char sequence or string, and returns a lazy sequence of vectors of strings

我认为我知道的是:with-open是懒惰的,并且rdr in (csv/parse-csv rdr)))csv 文件是单行吗?

附言。我还想搜索该文件,重复打开该文件(即使它正在被懒惰地读取)并搜索整个内容是否昂贵?


with-open不是懒,而是如果你内心做了一些偷懒的事情with-open,如果不强制惰性操作在范围内,您可能会遇到问题with-open。需要做的是在退出之前强制所有惰性结果with-open block.

(defn process-csv [file]
  (with-open [rdr (io/reader file)]
    (doall (csv/parse-csv rdr))))

功能doall旨在确保实现整个惰性序列。

由于输入的大小,另一种可能性是安排自己关闭阅读器,然后将惰性用于其预期目的(仅在需要时生成结果)。

(defn find-results
 [stream]
 (for [record stream
       :while (seq (first record))]
   record))

(def rdr (io/reader "verbs.csv"))
(def csv (csv/parse-csv rdr))

(def results (doall (find-results csv)))

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

使用 clojure-csv.core 解析巨大的 csv 文件 的相关文章

  • 减少每日状态表以仅包含状态更改

    我有一个包含 10 万以上用户的大型每日状态表 5 7 亿行 目前它位于 MySQL 或 CSV 中 该表包含三列 user id status 和 date 理想情况下 我希望将表缩减为一个新表 其中包含每个状态期间的 user id s
  • Err_Response_Headers_Multiple_Content_Disposition

    我需要导出 2csv单击一个按钮即可打开文件 下面是我生成2的代码csv files using System Data using System Data SqlClient using System Text using System
  • Papa Parse 在本地读取 CSV

    有人可以指出或向我展示 Papa Parse 读取 csv 文件的工作示例吗 当我尝试使用时 Papa parse file complete function results console log Finished results da
  • C#生成的csv文件通过电子邮件发送嵌入到Lotus Note中电子邮件的底部

    我遇到了一个奇怪的问题 即使用 NET SmtpClient 通过电子邮件发送的 CSV 附件出现在电子邮件底部 而不是 Lotus Note 中的附件 我只是不知道如何解决这个问题 而且我无法访问客户端计算机 这使得调试非常困难 我可以采
  • webjure 与 compojure?

    我听说过两个基于 Clojure 的 Web 应用程序框架 Webjure 和 Compojure 有人可以告诉我哪个更好吗 现在您可以添加Ring http groups google com group clojure browse t
  • 如何使用 clojurescript repl 评估宏

    一旦浏览器连接到 clojurescript repl 我以前就无法从 repl 调用宏 这个问题过去曾让我放弃使用 clojurescript 而更喜欢直接使用 javascript 基本上 我觉得 cljs repl 有点蹩脚 我又回到
  • 我可以在 Java 8 中使用 Clojure 函数作为 Lambda 函数吗?

    我在 Clojure 中使用了许多库来生成符合 Clojure lang IFN https github com clojure clojure blob master src jvm clojure lang IFn java 界面 它
  • 为什么我的字符串函数返回 clojure.lang.LazySeq@xxxxxx?

    我使用 leiningen REPL 定义了以下 3 个函数 defn rand int range floor ceiling floor rand int ceiling floor defn mutate index mutates
  • Bigtable 性能影响列族

    我们目前正在调查使用多个列族对 bigtable 查询性能的影响 我们发现将列拆分为多个列族并不会提高性能 有人有过类似的经历吗 有关我们的基准设置的更多详细信息 此时 生产表中的每一行包含大约 5 列 每列包含 0 1 到 1 KB 的数
  • 内存数据存储中有 Clojure 吗?

    我主要在 Node 中编程 并且喜欢文档存储 但我想首先对客户端和服务器之间的数据调用进行原型设计 我用过lowdb https github com typicode lowdb and da base https github com
  • 如何使用clojure中的map函数打印哈希映射列表的每个元素?

    我正在构建一个哈希映射列表 然后将其传递给另一个函数 当我尝试使用打印列表中的每个哈希映射时map它不工作 我可以打印完整列表或获取第一个元素等 defn m a println a map println a 以下仅适用于 repl m
  • 在unix、bash中合并csv文件

    我有一些 csv 文件 其格式如下 测试1 csv field port1 a1 0 2 a2 0 3 a3 0 6 测试2 csv field port2 b1 0 5 b2 0 6 b3 0 7 b4 0 1 b5 0 5 测试3 cs
  • 将文件夹中的多个 csv 文件读取到 R 中的单个数据帧中[重复]

    这个问题在这里已经有答案了 我有一个包含 332 个 csv 文件的文件夹 文件名称如下 001 csv 002 csv 003 csv 330 csv 331 csv 332 csv 所有文件都具有相同数量的变量和相同的格式 我需要读取一
  • Rails csv 格式的原始查询,通过控制器返回

    我使用 Active Record 来获取我的故事 然后生成 CSV 这是在 Rails Cast 中完成的标准方法 但我有很多行 需要几分钟 我想如果我能让 posgresql 来做 csv 渲染 那么我可以节省一些时间 这是我现在所拥有
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • 使用Python处理csv文件时如何跳过标题?

    我正在使用下面引用的代码来使用 Python 编辑 csv 代码中调用的函数构成了代码的上部 问题 我希望下面提到的代码从第二行开始编辑 csv 我希望它排除包含标题的第一行 现在它仅在第一行应用函数 并且我的标题行正在更改 in file
  • 未能在kafka-storm中将偏移量数据写入zookeeper

    我正在设置一个风暴集群来计算实时趋势和其他统计数据 但是我在将 恢复 功能引入到这个项目中时遇到了一些问题 方法是允许上次读取的偏移量kafka spout 源代码为kafka spout来自https github com apache
  • Clojure 缩减函数的目的

    clojure 的目的是什么reduced函数 在 Clojure 1 5 中添加 https clojure github io clojure clojure core api html clojure core reduced htt
  • 如何检查spec/col-of中的不同ID

    s def users s coll of user distinct true 上面的规范要求每个用户映射都是不同的 但是我如何指定它来检查不同的 user ids only 不应允许以下集合 id 10 name Jessica id
  • Pandas Dataframe.to_csv 小数=',' 不起作用

    在 Python 中 我正在将 Pandas Dataframe 写入 csv 文件 并希望将小数分隔符更改为逗号 像这样 results to csv D Data Kaeashi BigData ProcessMining Voorbe

随机推荐

  • 创建一个数组,其中相同的元素重复多次

    在 Python 中 其中 2 是一个列表 以下代码给出此输出 2 5 Outputs 2 2 2 2 2 有没有一种简单的方法可以用 JavaScript 中的数组来做到这一点 我编写了以下函数来执行此操作 但是有更短或更好的函数吗 va
  • Spring Data JPA - 用于 json 序列化的 ZonedDateTime 格式

    我的 json 序列化有问题ZonedDateTime 当转换为 json 时 它会产生一个巨大的对象 我不希望每次都传输所有数据 所以我尝试将其格式化为ISO 但它不起作用 我怎样才能让它格式化 这是我的实体类 MappedSupercl
  • 实体框架 Scaffold-DbContext 用户登录失败

    我正在尝试使用 Visual Studio 2017 和 NET Core 2 与 Entity Framework Core 构建 API 我正在按照以下指示进行操作这个链接 https learn microsoft com en us
  • 如何为头像图像创建五边形形状?

    我不知道如何为用户头像图像 或 svg 创建五边形形状 寻找指向下方而不是指向上方的形状 我在这里找到了例子http css tricks com examples ShapesOfCSS http css tricks com examp
  • 以其他用户身份运行时无法捕获输出

    我正在制作一个应用程序 允许客户端在对话框中列出所有正在运行的进程 我目前有以下代码 但我无法弄清楚为什么它不起作用 我没有看到任何输出 无论是 stderr 还是 stdout 有人可以指出我正确的方向吗 private void but
  • PHPMailer 附件,无需物理文件即可完成

    So Setup mail class recipients and body mailer gt AddAttachment home mywebsite public html file zip file zip The AddAtta
  • 如何在没有外部定时器的情况下设置QNetworkReply超时?

    是否可以设置超时时间QNetworkReply 所以很长一段时间没有来自服务器的回复 它可能会发出finished signal 不使用计时器是不可能的 但您不必显式编写计时器代码 该功能可以巧妙地打包到静态函数中 就像超时是回复的可设置属
  • 将 Rscript 中的布尔值输出到 Bash 变量中

    我有一个输出 TRUE 或 FALSE 的 R 脚本 在 R 中 它使用真正的 T F 数据类型 但是当我将其返回值回显给 bash 时 它似乎是一个字符串 表示 1 TRUE or 1 FALSE 它们的前面都有 1 0 也不是 这不是拼
  • 结合 CSS 的方法

    我有多个CSS文件 设计师制作了几个 bad迭代 我需要将其合并到一个文件中 然而 我不想把它们放在一起 我想合并类似选择器的属性 即 file 1 mainmenu width 100 background 01568b text dec
  • Oracle 相当于 Postgres 的 DISTINCT ON?

    在 postgres 中 您可以使用以下命令查询组中的第一个值DISTINCT ON 在Oracle中如何实现这一点 来自 postgres 手册 SELECT DISTINCT ON 表达式 仅保留第一行 给定表达式计算结果相等的每组行
  • Gson 在转换时忽略我的字段

    我创建了一个模型 public class UserRequest extends DefaultRequest public String username public String password public String id
  • 翻译 Angular-UI 分页

    如何翻译 Bootstrap UI 分页指令中的文本 我已经为法语翻译覆盖了这样的常量 angular module myapp ui bootstrap constant paginationConfig itemsPerPage 10
  • 我怎样才能完成“组”活动?

    我的 Android 应用程序中有一个操作 其中包括几个活动 在此操作结束时 我需要关闭所有这些活动并返回到启动此操作的屏幕 下图解释了它是如何工作的 有什么选择可以做到这一点吗 P S 片段在我的情况下不是一个选项 有很多方法可以做到这一
  • Django 1.4 用户管理 list_filter 使用 UserProfile 字段

    编辑 我更新了代码以反映查询集过滤器中的一个错误 其中我的 user user type 已被正确的 userprofile user type 替换 我正在使用 Django 1 4 并且我知道有一个新功能可以为管理员创建自定义 list
  • R - 使用字体(extrafont)时不打印空格

    我想使用特殊字体生成 R 图 即 Cormorant Garamond Light Cormorant Light 也是可能的 问题是它适用于所有其他字体 但对于这种字体 所有空格都被忽略 library ggplot2 library e
  • 我如何知道证书的 storeName 是什么?

    我在 Windows Server 2003 中安装了证书 我从MMC看到的路径是 证书 本地计算机 个人 证书 我想在我的 wcf 配置中配置它 我如何知道 storeName 是什么 这是我到目前为止在 wcf 配置中得到的
  • 命令行开关阻止 Inno Setup 安装程序创建桌面图标

    我正在尝试为 Balsamiq Mockups 创建静默安装 该安装似乎是使用 Inno Setup 编译器创建的 作为标准静默安装的一部分 它会创建一个我希望阻止的桌面快捷方式 有谁知道相关的命令行开关来防止创建桌面图标 我尝试过使用 M
  • 如何在sql server中进行交易技术分析计算?

    我如何像在 Excel 中一样使用 T SQL 在 SQL SERVER 数据库中进行技术分析指标计算 例如平均方向指数 随机振荡指标等 如果可以的话 是否可以像在excel中做宏一样制作程序呢 提前致谢 程序代码是在 MS SQL Ser
  • 将没有“timevar”的数据帧从长格式转置/重塑为宽格式

    我有一个遵循以下长模式的数据框 Name MedName Name1 atenolol 25mg Name1 aspirin 81mg Name1 sildenafil 100mg Name2 atenolol 50mg Name2 ena
  • 使用 clojure-csv.core 解析巨大的 csv 文件

    到目前为止我有 require clojure csv core as csv require clojure java io as io def csv file getFile clojure java io resource verb