跳转至内容

Arrow 数据集允许您查询分布在多个文件中的数据。这种数据分片可能表示分区,这可以加速仅涉及某些分区(文件)的查询。

Dataset 包含一个或多个 Fragment(例如文件),它们可能具有不同的类型和分区。

关于 Dataset$create(),请参阅 open_dataset(),它是其别名。

DatasetFactory 用于对 Dataset 的创建进行更精细的控制。

工厂

DatasetFactory 用于创建 Dataset,检查其中包含的片段的模式,并声明分区。FileSystemDatasetFactoryDatasetFactory 的子类,用于发现本地文件系统中的文件,这是当前唯一支持的文件系统。

关于 DatasetFactory$create() 工厂方法,请参阅 dataset_factory(),它是其别名。DatasetFactory 具有以下方法:

  • $Inspect(unify_schemas):如果 unify_schemasTRUE,则将扫描所有片段,并从中创建一个统一的模式;如果为 FALSE(默认值),则仅检查第一个片段的模式。当您知道并确信所有片段都具有相同的模式时,请使用此快速路径。

  • $Finish(schema, unify_schemas):返回一个 Dataset。如果提供了 schema,它将用于 Dataset;如果省略,将根据对数据集中片段(文件)的检查创建一个 Schema,并按照上述 unify_schemas 的描述进行操作。

FileSystemDatasetFactory$create() 是一个较低级别的工厂方法,它接受以下参数:

  • filesystem:一个文件系统

  • selector文件选择器NULL

  • paths:文件路径的字符向量或 NULL

  • format:一个文件格式

  • partitioningPartitioningPartitioningFactoryNULL

方法

Dataset 具有以下方法:

  • $NewScan():返回一个ScannerBuilder 用于构建查询

  • $WithSchema():返回一个具有指定模式的新数据集。此方法目前仅支持在模式中添加、删除或重新排序字段:您不能更改或转换字段类型。

  • $schema:活动绑定,返回数据集的模式;您也可以使用 ds$schema <- new_schema 替换数据集的模式。

FileSystemDataset 具有以下方法:

  • $files:活动绑定,返回 FileSystemDataset 的文件

  • $format:活动绑定,返回 FileSystemDataset文件格式

UnionDataset 具有以下方法:

  • $children:活动绑定,返回所有子 Dataset

另请参阅

open_dataset() 用于创建 Dataset 的简单接口