我很惊讶,但我在R的arrow::read_csv_arrow文档中找不到nrows或n_max参数。是我缺少了功能,还是它根本没有实现?有没有快速的解决方法?
arrow::read_csv_arrow
nrows
n_max
bbmckpt71#
它不支持将其作为参数,但您可以通过添加as_data_frame = FALSE,使用head(.)(箭头可以有效识别),然后 * collect()数据来读取它。
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的输出,我们会看到它不是一个框架,而是一个箭头“Table”,它是数据模式的表示,而不是数据本身:
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>
1条答案
按热度按时间bbmckpt71#
它不支持将其作为参数,但您可以通过添加
as_data_frame = FALSE
,使用head(.)
(箭头可以有效识别),然后 *collect()
数据来读取它。这具有相同的效果,只有前3行(在这种情况下)被读入R中的内存。
我们知道它没有提前阅读所有数据,因为我们只看了
read_csv_arrow
的输出,我们会看到它不是一个框架,而是一个箭头“Table”,它是数据模式的表示,而不是数据本身: