c++ - 将 JSON 文档转换为 Parquet

标签 c++ json database data-conversion parquet

我有一个 JSON 文档语料库,我想使用 C++ 将它们转换/存储为 Parquet 格式以进行高效处理。 我对这个过程有 2 个问题:

Q1- 在我在网上找到的所有将数据转换为 Parquet 格式(例如 this )的类似示例和测试用例中,似乎应该提前定义模式。但是,我的 JSON 文档不符合单一/固定架构。我只是想知道模式定义是否确实是必需的(因为我猜 Parquet 旨在有效地支持具有嵌套和可选值的非结构化数据)。

Q2- 几乎所有可用示例都使用 Java 库。但是,我正在寻找一种在 C++ 中进行此类转换的有效方法。有什么提示/建议吗? (我已经开始查看 Parquet-cpp repo 及其测试用例,但我想知道是否有一个更简洁的示例,其中包含可用的最小依赖项)。

最佳答案

A1:Parquet 支持嵌套和可选值,但您需要提前提供一个架构定义来指定这些嵌套/可选数据元素。

A2:parquet-cpp 是我所知道的唯一用于 Parquet 的 C++ 库。当然,这并不是编写 Parquet 的唯一方法 - 例如,Impala 实现了自己的 Parquet 堆栈,但您可能不想这样做。

关于c++ - 将 JSON 文档转换为 Parquet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39985821/

相关文章:

java - 如何将 JSON 字符串解析为 Jackson 中的 ObjectNode?

mysql - 如何在RackSpace专用服务器上发布数据库?

mysql - 多对多查询,MySQL

c++ - 错误代码 LNK2019

c++ - 单元测试 - 设置私有(private)成员以获得所需的对象状态

javascript - 如何将 JSON 字符串转换为 JS 对象?

json - 在 Swift 3.0 中如何从返回的 json 中获取特定值?

c++ - Direct2D --- 为什么画笔资源绑定(bind)到各个 Direct2D 渲染目标?

c++ - 对c++ vector 的交集

mysql - 在 SELECT mysql 中使用 IF 和 JOIN 时出现错误