R语言 如何编写基于data.table分组的箭头数据集?

guykilcj  于 2023-04-09  发布在  其他
关注(0)|答案(1)|浏览(106)

我有一个名为df的数据集,其中包含年、月和日变量。我想使用write_dataset函数输出一个具有标准箭头数据集语法的文件夹,如下图所示:

在每个文件夹中,将有month=1,month=2,依此类推。
现在,为了创建这个,我使用了以下代码:

df <- df %>% group_by(year, month, day)
output_folder = "my/path"
arrow::write_dataset(df, 
                     output_folder, 
                     format = "parquet", 
                     )

然而,我的数据集太大了,我想使用data.table来利用快速分组的优势。我的方法如下:

grouping_cols = c("year", "month", "day")
setkeyv(df, grouping_cols)

arrow::write_dataset(df, 
                     output_folder, 
                     format = "parquet", 
                     )

但是,现在结果没有分组,而是返回单个.parquet文件(没有充分利用arrow::write_dataset的潜力)。

有没有办法让相同的数据集按指定的列分组,但基于data.table而不是dplyr分组?

kmb7vmvb

kmb7vmvb1#

如果你看一下docs,默认的partitioning参数是datasetdplyr::group_vars。这个概念不会自动转换成data.table模拟,所以如果你不使用dplyr对象作为输入,你必须提供这个参数。

arrow::write_dataset(df, 
                    output_folder,
                    partitioning=grouping_cols,
                    format = "parquet", 
                    )

相关问题