gpt4 book ai didi

使用 `readr::read_csv_chunked()`批量读取csv文件

转载 作者:行者123 更新时间:2023-12-04 11:19:20 24 4
gpt4 key购买 nike

我想读取较大的csv文件,但遇到内存问题。因此,我想尝试使用read_csv_chunked()包中的readr读取它们。我的问题是我不太了解callback参数。

这是到目前为止我尝试过的一个最小的示例(我知道我必须将所需的操作包含在f()中,否则就内存使用而言没有优势,对吧?):

library(tidyverse)
data(diamonds)
write_csv(diamonds, "diamonds.csv") # to have a csv to read

f <- function(x) {x}
diamonds_chunked <- read_csv_chunked("diamonds.csv",
callback = DataFrameCallback$new(f),
chunk_size = 10000)

我试图使 callback参数与官方文档中的示例保持接近:
# Cars with 3 gears
f <- function(x, pos) subset(x, gear == 3)
read_csv_chunked(readr_example("mtcars.csv"),
DataFrameCallback$new(f),
chunk_size = 5)

但是,我收到下面的错误,由于我看到进度条移至18%,因此似乎在读取第一个块之后出现。

Error in eval(substitute(expr), envir, enclos) : unused argument (index)



我已经尝试在 f()中包含要进行的操作,但是仍然遇到相同的错误。

最佳答案

我发现要在DataFrameCallback$new()中调用的函数始终需要有一个附加参数(本文档示例中的pos)。不必使用该参数,因此我并不真正理解其目的。但至少,它以这种方式工作。

有谁知道关于第二个论点的更多细节?

关于使用 `readr::read_csv_chunked()`批量读取csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43677277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com