有没有一种方法可以在R中保持箭头格式的同时合并两个数据?

9rygscc1  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(68)

Arrow包读取的2个数据有没有办法合并!但是,我希望保持箭头格式完整。可能有一种方法可以像下面这样做,但它花费了太多的时间来构建数据,然后应用rbindlist函数,因此我的问题。

install.packages("arrow")
library("arrow")

a <- arrow::open_dataset("a.parquet")
b <- arrow::open_dataset("b.parquet")
a1 <- as.data.frame(a)
b1 <- as.data.frame(b)

字符串

如果a、B的大小很大,花费的时间太长。

merge <- rbindlist(list(a1, b1))

请有新想法

我期待着一种快速的方法来合并箭头格式的两种数据,或者即使你没有。

hk8txs48

hk8txs481#

arrow包支持分区,一次阅读多个parquet文件,这可能会达到你想要的效果(请参阅下面关于@r2evans分区的说明)。也就是说,假设数据集具有相同的模式,那么您可以在对open_dataset的单个调用中打开多个文件,然后将它们视为单个文件,例如

library(arrow)
library(dplyr)

file1 <- tempfile()
file2 <- tempfile()
write_parquet(iris, file1)
write_parquet(iris, file2)

files <- c(file1, file2)
x <- open_dataset(files)
x |>
    select(Sepal.Length) |>
    nrow()

字符串
完整的细节可以在vignette中找到

相关问题