跳到內容

CsvReadOptionsCsvParseOptionsCsvConvertOptionsJsonReadOptionsJsonParseOptionsTimestampParser 是各種檔案讀取選項的容器。請參閱它們在 read_csv_arrow()read_json_arrow() 中的用法。

工廠方法

CsvReadOptions$create()JsonReadOptions$create() 工廠方法接受以下參數

  • use_threads 是否使用全域 CPU 執行緒池

  • block_size 我們從 IO 層請求的區塊大小;也決定了當 use_threads 為 TRUE 時區塊的大小。注意:如果為 FALSE,JSON 輸入必須以空行結尾。

CsvReadOptions$create() 還接受以下額外參數

  • skip_rows 在讀取資料前要跳過的行數 (預設值為 0)。

  • column_names 提供欄位名稱的字元向量。如果長度為 0 (預設值),除非 autogenerate_column_namesTRUE,否則將剖析第一個非跳過的列以產生欄位名稱。

  • autogenerate_column_names 邏輯值:產生欄位名稱而不是使用第一個非跳過的列 (預設值) 嗎?如果為 TRUE,欄位名稱將為 "f0"、"f1"、...、"fN"。

  • encoding 檔案編碼。(預設值為 "UTF-8")

  • skip_rows_after_names 在欄位名稱之後要跳過的行數 (預設值為 0)。此數字可以大於一個區塊中的行數,並且會計算空行。應用順序如下

    • 套用 skip_rows (如果非零);

    • 讀取欄位名稱 (除非已設定 column_names);

    • 套用 skip_rows_after_names (如果非零)。

CsvParseOptions$create() 接受以下參數

  • delimiter 欄位分隔字元 (預設值為 ",")

  • quoting 邏輯值:字串是否用引號括起來? (預設值為 TRUE)

  • quote_char 引號字元,如果 quotingTRUE (預設值為 '"')

  • double_quote 邏輯值:值內部的引號是否使用雙引號? (預設值為 TRUE)

  • escaping 邏輯值:是否使用跳脫字元? (預設值為 FALSE)

  • escape_char 跳脫字元,如果 escapingTRUE (預設值為 "\\")

  • newlines_in_values 邏輯值:值是否允許包含 CR (0x0d) 和 LF (0x0a) 字元? (預設值為 FALSE)

  • ignore_empty_lines 邏輯值:是否應忽略空行 (預設值) 或產生一列缺失值 (如果為 FALSE)?

JsonParseOptions$create() 僅接受 newlines_in_values 參數。

CsvConvertOptions$create() 接受以下參數

  • check_utf8 邏輯值:檢查字串欄位的 UTF8 有效性? (預設值為 TRUE)

  • null_values 識別空值的拼寫方式的字元向量。類似於 read.csv()na.strings 參數或 readr::read_csv() 中的 na

  • strings_can_be_null 邏輯值:字串/二進制欄位可以有空值嗎?類似於 readr::read_csv()quoted_na 參數。(預設值為 FALSE)

  • true_values 識別 TRUE 值的拼寫方式的字元向量

  • false_values 識別 FALSE 值的拼寫方式的字元向量

  • col_types 一個 SchemaNULL 以推斷類型

  • auto_dict_encode 邏輯值:是否嘗試自動字典編碼字串/二進制資料 (類似 stringsAsFactors)。預設值為 FALSE。此設定對於非推斷的欄位 (col_types 中的欄位) 會被忽略。

  • auto_dict_max_cardinality 如果 auto_dict_encode,字串/二進制欄位會字典編碼到此唯一值數量 (預設值為 50),之後會切換到常規編碼。

  • include_columns 如果非空,則指示應實際讀取和轉換的 CSV 檔案中的欄位名稱 (依向量順序)。

  • include_missing_columns 邏輯值:如果提供了 include_columns,是否應將其中命名但未在資料中找到的欄位作為 null() 類型的欄位包含在內?預設值 (FALSE) 表示讀取器將改為引發錯誤。

  • timestamp_parsers 使用者定義的時間戳記剖析器。如果指定多個剖析器,CSV 轉換邏輯將嘗試從此向量的開頭開始剖析值。可能的值包括 (a) NULL (預設值),它使用 ISO-8601 剖析器;(b) strptime 剖析字串的字元向量;或 (c) TimestampParser 物件的清單。

  • decimal_point 用於浮點數中小數點的字元。預設值:"."

TimestampParser$create() 接受選用的 format 字串參數。請參閱 strptime() 以取得範例語法。預設值是使用 ISO-8601 格式剖析器。

CsvWriteOptions$create() 工廠方法接受以下參數

  • include_header 是否寫入包含欄位名稱的初始標頭行

  • batch_size 一次處理的最大行數。預設值為 1024。

  • null_string 要為空值寫入的字串。不得包含引號。預設值為空字串 ("")。

  • eol 用於結束行的行尾字元。

  • delimiter 欄位分隔符

  • quoting_style 引號樣式:"Needed" (僅將需要引號的值括在引號中,因為它們的 CSV 呈現方式本身可能包含引號 (例如字串或二進制值))、"AllValid" (將所有有效值括在引號中) 或 "None" (不將任何值括在引號中)。

主動綁定

  • column_names:來自 CsvReadOptions