可以使用一個或多個 DatasetFactory 來建構 Dataset。此函數協助您建構一個 DatasetFactory
,您可以將其傳遞給 open_dataset()
。
引數
- x
指向包含資料檔案的目錄的字串路徑、指向一個或多個資料檔案的字串路徑向量,或應組合其資料集的
DatasetFactory
物件的列表。如果指定此引數,它將用於建構UnionDatasetFactory
,並且其他引數將被忽略。- filesystem
FileSystem 物件;如果省略,將從
x
偵測FileSystem
- format
FileFormat 物件,或
x
中檔案格式的字串識別符。目前支援的值"parquet"
"ipc"/"arrow"/"feather",彼此的所有別名;對於 Feather,請注意僅支援版本 2 檔案
"csv"/"text",相同事物的別名(因為逗號是文字檔案的預設分隔符號)
"tsv",相當於傳遞
format = "text", delimiter = "\t"
預設值為 "parquet",除非也指定了
delimiter
,在這種情況下,它被假定為 "text"。- partitioning
以下其中之一
Schema
,在這種情況下,將解析相對於sources
的檔案路徑,並且路徑段將與 schema 欄位匹配。例如,schema(year = int16(), month = int8())
將為類似 "2019/01/file.parquet"、"2019/02/file.parquet" 等檔案路徑建立分割區。字元向量,定義對應於這些路徑段的欄位名稱(也就是說,您正在提供將對應於
Schema
的名稱,但類型將被自動偵測)HivePartitioning
或HivePartitioningFactory
,由hive_partition()
返回,它從 Hive 樣式的路徑段解析明確或自動偵測的欄位NULL
表示不分割
- hive_style
邏輯值:如果
partitioning
是字元向量或Schema
,是否應將其解釋為指定 Hive 樣式的分割?預設值為NA
,這表示檢查檔案路徑以進行 Hive 樣式的分割並據此行為。- factory_options
FileSystemFactoryOptions 的可選列表
partition_base_dir
:字串路徑段前綴,用於在使用 DirectoryPartitioning 發現分割資訊時忽略。對於 HivePartitioning 沒有意義(忽略並發出警告),當提供檔案路徑向量時也無效。exclude_invalid_files
:邏輯值:是否應排除無效的資料檔案?預設值為FALSE
,因為預先檢查所有檔案會產生 I/O,因此速度會較慢,尤其是在遠端檔案系統上。如果為 false 且存在無效檔案,則在掃描時會發生錯誤。這是唯一適用於以下情況的 FileSystemFactoryOption:在其中發現檔案的目錄路徑,以及提供檔案路徑向量。selector_ignore_prefixes
:字元向量,表示在目錄中發現檔案時要忽略的檔案前綴。如果可以透過常見的檔案名稱前綴排除無效檔案,您可以避免exclude_invalid_files
的 I/O 成本。當提供檔案路徑向量時無效(但如果您提供檔案列表,您可以自行篩選無效檔案)。
- ...
其他格式特定的選項,傳遞給
FileFormat$create()
。對於 CSV 選項,請注意,您可以使用 Arrow C++ 程式庫命名("delimiter"、"quoting" 等)或read_csv_arrow()
中使用的readr
樣式命名("delim"、"quote" 等)來指定它們。並非所有readr
選項目前都受支援;如果您遇到arrow
應該支援的選項,請提交 issue。
值
DatasetFactory
物件。將其傳遞給 open_dataset()
,在列表中可能包含其他 DatasetFactory
物件,以建立 Dataset
。
詳細資訊
如果您只有單個 DatasetFactory
(例如,您有一個包含 Parquet 檔案的單個目錄),您可以直接呼叫 open_dataset()
。當您想要組合不同的目錄、檔案系統或檔案格式時,請使用 dataset_factory()
。