跳到內容

Arrow 資料集允許您針對已分散在多個檔案中的資料進行查詢。這種資料分片可能表示分割,這可以加速僅觸及某些分割區(檔案)的查詢。

一個 Dataset 包含一個或多個 Fragments,例如檔案,可能具有不同的類型和分割。

對於 Dataset$create(),請參閱 open_dataset(),它是它的別名。

DatasetFactory 用於提供對 Dataset 建立的更精細控制。

Factory

DatasetFactory 用於建立 Dataset、檢查其中包含的片段的 Schema,並宣告分割。FileSystemDatasetFactoryDatasetFactory 的子類別,用於在本地檔案系統中發現檔案,這是目前唯一支援的檔案系統。

對於 DatasetFactory$create() 工廠方法,請參閱 dataset_factory(),它是它的別名。一個 DatasetFactory 具有

  • $Inspect(unify_schemas):如果 unify_schemasTRUE,則將掃描所有片段並從中建立統一的 Schema;如果為 FALSE(預設),則僅檢查第一個片段的 schema。當您知道並信任所有片段都具有相同的 schema 時,請使用此快速路徑。

  • $Finish(schema, unify_schemas):傳回一個 Dataset。如果提供了 schema,它將用於 Dataset;如果省略,將透過檢查資料集中的片段(檔案)來建立 Schema,並遵循如上所述的 unify_schemas

FileSystemDatasetFactory$create() 是一個較低層級的工廠方法,並接受以下引數

  • filesystem:一個 FileSystem

  • selector:一個 FileSelectorNULL

  • paths:檔案路徑的字元向量或 NULL

  • format:一個 FileFormat

  • partitioningPartitioningPartitioningFactoryNULL

方法

一個 Dataset 具有以下方法

  • $NewScan():傳回一個 ScannerBuilder,用於建立查詢

  • $WithSchema():傳回一個具有指定 schema 的新 Dataset。此方法目前僅支援在 schema 中新增、移除或重新排序欄位:您無法變更或轉換欄位類型。

  • $schema:主動綁定,傳回 Dataset 的 Schema;您也可以使用 ds$schema <- new_schema 來替換資料集的 schema。

FileSystemDataset 具有以下方法

  • $files:主動綁定,傳回 FileSystemDataset 的檔案

  • $format:主動綁定,傳回 FileSystemDatasetFileFormat

UnionDataset 具有以下方法

  • $children:主動綁定,傳回所有子 Dataset

另請參閱

open_dataset(),用於建立 Dataset 的簡單介面