我希望限制从拼花文件返回的行数,希望使用dplyr::collect
。我知道head()
可用于限制行数,但我认为首先需要收集所有行。我已经看到dplyr::collect(n=10)
与数据库一起使用,但我无法使这项工作与拼花文件。我正在处理的一些花束有数百万行,我正在寻找一种高效的选择。以下是到目前为止使用的代码片段:
返回有限行数的方法
arrow::open_dataset(source = "C:/data/parquet/members") %>%
dplyr::collect() %>%
head(1000)
不返回限定行数的方法
arrow::open_dataset(source = "C:/data/parquet/members") %>%
dplyr::collect(n=1000)
下面的工作,有没有更高效的方法?
head(arrow::open_dataset(sources = "C:/data/parquet/members"), 1000) %>%
dplyr::collect()
您发现的方法:
head(arrow::open_dataset(sources = "C:/data/parquet/members"), 1000) %>%
dplyr::collect()
是解决这个问题的最好方法。需要先应用head
操作,再应用collect
操作。这应该不会读取整个数据集,并且应该是高效的。
注意:虽然它总是返回1000行,但它可能需要读取略多于给定的预读配置&在您的拼花文件中的行组大小。
注2:在某些情况下,您可能会得到令人惊讶和/或不确定的结果:https://issues.apache.org/jira/browse/ARROW-13893