Apache Arrow 使用 C++ 在镶木地板中编写嵌套类型
Posted
技术标签:
【中文标题】Apache Arrow 使用 C++ 在镶木地板中编写嵌套类型【英文标题】:Apache Arrow writing nested types in parquet with C++ 【发布时间】:2021-04-24 09:40:57 【问题描述】:不幸的是,我没有找到将嵌套类型(如使用 Apache Arrow 的地图)写入镶木地板的 c++ 示例。架构的创建很清楚,但箭头表的创建部分没有。
有没有关于示例的提示或链接?
非常感谢!
【问题讨论】:
您好,欢迎来到 ***,尝试添加您正在尝试做的代码示例。 【参考方案1】:要创建StructArray
,您可以使用StructArray::Make
方法,该方法为每个字段接收一个数组向量:
arrow::DoubleBuilder heightBuilder;
heightBuilder.Append(68.3);
heightBuilder.Append(72.1);
ARROW_ASSIGN_OR_RAISE(auto heights, heightBuilder.Finish());
arrow::StringBuilder nameBuilder;
nameBuilder.Append("Alice");
nameBuilder.Append("Bob");
ARROW_ASSIGN_OR_RAISE(auto names, nameBuilder.Finish());
arrow::FieldVector fieldsarrow::field("height", arrow::float64()),
arrow::field("name", arrow::utf8());
ARROW_ASSIGN_OR_RAISE(auto array,
arrow::StructArray::Make(heights, names, fields));
std::cout << array->ToString();
【讨论】:
以上是关于Apache Arrow 使用 C++ 在镶木地板中编写嵌套类型的主要内容,如果未能解决你的问题,请参考以下文章
Spark - 如果已经存在,则更新记录(在镶木地板文件中)
如何将镶木地板格式的特定列加载到 Redshift 光谱中?
使用 to_parquet() 将 dask 数据帧写入镶木地板结果“RuntimeError:文件元数据仅在写入器关闭后可用”