read_csv_arrow中的n_max或nrow参数



我很惊讶,但我无法在r中的arrow::read_csv_arrow文档中找到nrowsn_max参数

是我遗漏了功能,还是它根本没有实现?

是否有一个快速的解决方法?

它不支持它作为一个参数,但您可以通过添加as_data_frame = FALSE来读取它惰性(不读取所有内容),使用head(.)(箭头有效识别),并然后collect()数据。

write.csv(mtcars, "mt.csv", row.names = FALSE)
arrow::read_csv_arrow("mt.csv", as_data_frame = FALSE) |>
head(n = 3) |>
collect()
# # A tibble: 3 × 11
#     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
#   <dbl> <int> <dbl> <int> <dbl> <dbl> <dbl> <int> <int> <int> <int>
# 1  21       6   160   110  3.9   2.62  16.5     0     1     4     4
# 2  21       6   160   110  3.9   2.88  17.0     0     1     4     4
# 3  22.8     4   108    93  3.85  2.32  18.6     1     1     4     1

具有相同的效果,只有前3行(在本例中)被读入r中的内存。

我们知道它没有提前读取所有数据,因为我们只看read_csv_arrow的输出,我们会看到它不是一个框架,而是一个箭头"表",它是数据模式的表示,而不是数据本身:

arrow::read_csv_arrow("mt.csv", as_data_frame = FALSE)
# Table
# 32 rows x 11 columns
# $mpg <double>
# $cyl <int64>
# $disp <double>
# $hp <int64>
# $drat <double>
# $wt <double>
# $qsec <double>
# $vs <int64>
# $am <int64>
# $gear <int64>
# $carb <int64>

相关内容

  • 没有找到相关文章

最新更新