Coredump для официального примера чтения csv с помощью apache arrow? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь написать пример для чтения csv с помощью apache-arrow в c ++ согласно официальному, https://arrow.apache.org/docs/cpp/csv.html#,, но он встречает ошибку сегментации на status = reader->Read(&table);

Может кто-нибудь помочь? спасибо ~

информация об окружении: g++:7.3.1

команда make: c++ -g -std=c++11 -Wall -O2 test.cpp -o test -I../../arrow/src -L../../arrow/lib -larrow -lparquet -Wl,-rpath,./

информация о коде:

    arrow::Status status;
    arrow::MemoryPool *pool = arrow::default_memory_pool();
    std::shared_ptr<arrow::io::InputStream> input;
    std::string csv_file = "test.csv";
    auto input_readable = std::dynamic_pointer_cast<arrow::io::ReadableFile>(input);
    PARQUET_THROW_NOT_OK(arrow::io::ReadableFile::Open(csv_file, pool, &input_readable));

    auto read_options = arrow::csv::ReadOptions::Defaults();
    read_options.use_threads = false;
    read_options.column_names.emplace_back("name");
    read_options.column_names.emplace_back("age");

    auto parse_options = arrow::csv::ParseOptions::Defaults();

    auto convert_options = arrow::csv::ConvertOptions::Defaults();
    convert_options.include_missing_columns = true;

    std::shared_ptr<arrow::csv::TableReader> reader;
    status = arrow::csv::TableReader::Make(pool, input, read_options,
                                           parse_options, convert_options,
                                           &reader);
    if (!status.ok())
    {
        std::cout << "make csv table error" << std::endl;
        return -1;
    }
    std::shared_ptr<arrow::Table> table;
    status = reader->Read(&table);
    if (!status.ok())
    {
        std::cout << "read csv table error" << std::endl;
        return -1;
    }

информация о coredump:

Program terminated with signal 11, Segmentation fault.
#0  0x00007fe4fcda83e7 in arrow::io::internal::ReadaheadSpooler::Impl::WorkerLoop() () from ./libarrow.so.15
(gdb) bt
#0  0x00007fe4fcda83e7 in arrow::io::internal::ReadaheadSpooler::Impl::WorkerLoop() () from ./libarrow.so.15
#1  0x00007fe4fd405a2f in execute_native_thread_routine () from ./libarrow.so.15
#2  0x00007fe4fa8ecdf3 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fe4fb86e1bd in clone () from /lib64/libc.so.6

csv info

name,age
aaa,12
bbb,13
ccc,14
ddd,15
...