从 R 中的文件名指定 Apache Arrow 分区
Specifying Apache Arrow partitioning from file names in R
我正在使用 R 学习 Apache Arrow,我正在努力更好地理解
分区机制。
我有一个包含 5000 多个 CSV 文件的文件夹
结构:cci_v4_2004106_ppz_takuvik_above_45n.csv
library(arrow)
#>
#> Attaching package: 'arrow'
#> The following object is masked from 'package:utils':
#>
#> timestamp
ds <- open_dataset("~/Desktop/ppz/", format = "csv")
ds
#> FileSystemDataset with 5824 csv files
#> longitude: double
#> latitude: double
#> primary_production: double
是否可以从文件名推断分区?例如,我想使用类似的东西:
# ds <- open_dataset("~/Desktop/ppz/", format = "csv", partitioning = c("year", "yday"))
我可以定义一个架构,例如 partitioning = c("year", "yday")
从文件名中获取值(此处:year = 2004,yday = 106)。
由 reprex package (v2.0.1)
于 2022-03-25 创建
不,今天不存在此功能。分区目前仅限于目录:
/2014/106/ppz_takuvik_above_45n.csv // "directory" flavor
/year=2014/yday=106/ppz_takuvik_above_45n.csv // "hive" flavor
有一个 open JIRA ticket 用于基于文件名的分区,并且有一个 PR 正在审查中,所以我希望它会在 8.0.0 中可用。
但是,该票据不会完全符合您的描述。它允许您将每个 underscore-separated 元素视为一列,但不会将 2014106
列拆分为 year/yday
。另一方面,如果您可以将文件名更改为 2014_106
,我想您会没事的。
我正在使用 R 学习 Apache Arrow,我正在努力更好地理解 分区机制。
我有一个包含 5000 多个 CSV 文件的文件夹
结构:cci_v4_2004106_ppz_takuvik_above_45n.csv
library(arrow)
#>
#> Attaching package: 'arrow'
#> The following object is masked from 'package:utils':
#>
#> timestamp
ds <- open_dataset("~/Desktop/ppz/", format = "csv")
ds
#> FileSystemDataset with 5824 csv files
#> longitude: double
#> latitude: double
#> primary_production: double
是否可以从文件名推断分区?例如,我想使用类似的东西:
# ds <- open_dataset("~/Desktop/ppz/", format = "csv", partitioning = c("year", "yday"))
我可以定义一个架构,例如 partitioning = c("year", "yday")
从文件名中获取值(此处:year = 2004,yday = 106)。
由 reprex package (v2.0.1)
于 2022-03-25 创建不,今天不存在此功能。分区目前仅限于目录:
/2014/106/ppz_takuvik_above_45n.csv // "directory" flavor
/year=2014/yday=106/ppz_takuvik_above_45n.csv // "hive" flavor
有一个 open JIRA ticket 用于基于文件名的分区,并且有一个 PR 正在审查中,所以我希望它会在 8.0.0 中可用。
但是,该票据不会完全符合您的描述。它允许您将每个 underscore-separated 元素视为一列,但不会将 2014106
列拆分为 year/yday
。另一方面,如果您可以将文件名更改为 2014_106
,我想您会没事的。