我有一个使用 python Polars 包创建的镶木地板文件。它有一列可变长度的字符串,如下所示:
┌──────────┐
│ str_list │
│ --- │
│ str │
╞══════════╡
│ ALV5 │
│ SMGWX │
│ NEGOT │
│ S2U0S │
│ … │
│ KFO │
│ LJ3J │
│ PCY6O │
│ GQ0W7 │
└──────────┘
我尝试使用 C++ 将这个文件读入字符串变量,但我不确定应该将其转换为什么,因为类型结果是 LARGE_STRING:
assert(record_batch->column(0)->type_id() == arrow::Type::LARGE_STRING)
是真的。
我可以做
auto strlist = std::static_pointer_cast<arrow::LargeStringArray>(record_batch->column(0));
但是我找不到 strlist 的任何成员函数可以让我将字符串复制到我自己的字符串变量中。
您可以使用
LargeStringArray::GetView(i)
来获取 std::string_view
,这样您就不必为数组中的每个字符串堆分配 std::string
。