Arrow 数据集允许你查询跨多个文件存储的数据。这种数据分片可能表示分区(partitioning),它可以加速仅涉及部分分区(文件)的查询。
一个 Dataset 包含一个或多个 Fragments(如文件),它们可能具有不同的类型和分区方式。
关于 Dataset$create(),请参阅 open_dataset(),它是前者的别名。
DatasetFactory 用于对 Dataset 的创建提供更精细的控制。
工厂
DatasetFactory 用于创建 Dataset、检查其中包含片段的 Schema,以及声明分区。FileSystemDatasetFactory 是 DatasetFactory 的一个子类,用于发现本地文件系统中的文件,这是目前唯一支持的文件系统。
关于 DatasetFactory$create() 工厂方法,请参阅 dataset_factory(),它是前者的别名。DatasetFactory 具有:
$Inspect(unify_schemas):如果unify_schemas为TRUE,则会扫描所有片段并从中创建一个统一的 Schema;如果为FALSE(默认值),则仅检查第一个片段的 Schema。当你确信所有片段具有相同的 Schema 时,请使用此快捷路径。$Finish(schema, unify_schemas):返回一个Dataset。如果提供了schema,它将被用于该Dataset;如果省略,则会根据上述unify_schemas的设置,通过检查数据集中的片段(文件)来创建Schema。
FileSystemDatasetFactory$create() 是一个底层工厂方法,接受以下参数:
filesystem:一个 FileSystemselector:一个 FileSelector 或NULLpaths:一个字符向量形式的文件路径或NULLformat:一个 FileFormatpartitioning:一个Partitioning、PartitioningFactory或NULL
方法
Dataset 具有以下方法:
$NewScan():返回一个用于构建查询的 ScannerBuilder$WithSchema():返回一个具有指定 Schema 的新数据集。该方法目前仅支持添加、删除或重新排列 Schema 中的字段:你不能更改或转换字段类型。$schema:返回数据集 Schema 的活动绑定(Active binding);你也可以通过ds$schema <- new_schema替换数据集的 schema。
FileSystemDataset 具有以下方法:
$files:活动绑定,返回FileSystemDataset的文件列表$format:活动绑定,返回FileSystemDataset的 FileFormat
UnionDataset 具有以下方法:
$children:活动绑定,返回所有子Dataset。
另请参阅
open_dataset() 用于创建 Dataset 的简单接口