将 parquet 文件中的一列字符串读取到 C++ 字符串变量中

问题描述 投票:0回答:1

我有一个使用 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 的任何成员函数可以让我将字符串复制到我自己的字符串变量中。

c++ parquet python-polars apache-arrow
1个回答
0
投票

您可以使用

LargeStringArray::GetView(i)
来获取
std::string_view
,这样您就不必为数组中的每个字符串堆分配
std::string

© www.soinside.com 2019 - 2024. All rights reserved.