CsvReadOptions
、CsvParseOptions
、CsvConvertOptions
、JsonReadOptions
、JsonParseOptions
和 TimestampParser
是各种文件读取选项的容器。请分别在 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_names
为TRUE
。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
如果quoting
为TRUE
,则为引号字符(默认为'"'
)double_quote
逻辑值:值内的引号是否双引号?(默认为TRUE
)escaping
逻辑值:是否使用转义(默认为FALSE
)escape_char
如果escaping
为TRUE
,则为转义字符(默认为"\\"
)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
一个Schema
或NULL
用于推断类型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"(不将任何值括在引号中)。