读取 CSV 文件

reading csv file

本文关键字:文件 CSV 读取      更新时间:2023-10-16

all我现在正在使用阿帕奇箭头。

当使用箭头读取csv文件时::csv::TableReader::读取函数,我想将此文件读取为没有标头的文件。

但是,它读取csv文件并将第一行视为csv标头(数据字段)。是否有任何选项可以读取没有标题的csv文件?

谢谢

查看ParserOptions

int32_t arrow::csv::ParseOptions::header_rows = 1

它可以定义为TableReader::Make(...)中的第三个参数。

static Status   Make(MemoryPool *pool, std::shared_ptr< io::InputStream > input, const ReadOptions &, const ParseOptions &, const ConvertOptions &, std::shared_ptr< TableReader > *out)

检查文档:https://arrow.apache.org/docs/cpp/namespacearrow_1_1csv.html

以及这些测试文件:https://github.com/apache/arrow/tree/3cf8f355e1268dd8761b99719ab09cc20d372185/cpp/src/arrow/csv

你目前不能。如果 header_rows == 0,则会出现错误:

if (parse_options_.header_rows == 0) {
    // TODO allow passing names and/or generate column numbers?
    return Status::Invalid("header_rows == 0 needs explicit column names");
}

(https://github.com/apache/arrow/blob/3cf8f355e1268dd8761b99719ab09cc20d372185/cpp/src/arrow/csv/reader.cc)

如果您没有标头,请使用

arrow::csv::ReadOptions::autogenerate_column_names = true;

他们会将它们命名为 f0....fN