我有一个名为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
分组?
1条答案
按热度按时间kmb7vmvb1#
如果你看一下docs,默认的
partitioning
参数是dataset
的dplyr::group_vars
。这个概念不会自动转换成data.table模拟,所以如果你不使用dplyr
对象作为输入,你必须提供这个参数。