【问题标题】:How to create ORC or Parquet files from PHP code? [closed]如何从 PHP 代码创建 ORC 或 Parquet 文件? [关闭]
【发布时间】:2017-11-30 12:22:25
【问题描述】:

是否有任何库可用于从 PHP 应用程序以 ORC 或 Parquet 格式编写自定义数据文件以进行 Presto 查询?

如果不是这种情况下的最佳做法是什么?希望不涉及设置 Map Reduce 集群。

10X - 尼尔

【问题讨论】:

    标签: php hive parquet orc presto


    【解决方案1】:

    抱歉打扰了,但我觉得这个问题应该更新。

    去年,我发布了第一个公开可用的 PHP 库,用于读取/写入 Parquet 文件,php-parquet。 请参阅https://github.com/jocoon/php-parquet 和/或已发布的作曲家包https://packagist.org/packages/jocoon/parquet (composer require jocoon/parquet)。它是基于 Apache Thrift 规范的 parquet-dotnet 的部分移植和启发。

    只要您没有特殊的压缩需求(例如snappy),您就不需要外来的 PHP 扩展。 BCMathGMP 是必需的,因为可能存在任意精度的数字,并且您需要有 zlib 可用(AFAIK 是 Parquet 文件最常用/典型的压缩方法,更准确地说:gzip)。

    在相应的 github 页面上提供了基本使用说明。

    免责声明:我是这个包的开发者。这并不意味着广告。该库是在 MIT 许可下发布的。随意提交问题或贡献。

    【讨论】:

      【解决方案2】:

      https://github.com/apache/parquet-cpp 项目提供了一个 C++ 实现来编写 Parquet 文件,而无需使用 MapReduce 或 JVM。虽然已经有 Python (https://arrow.apache.org/docs/python/parquet.html)、Ruby / GLib (https://github.com/red-data-tools/parquet-glib) 和 NodeJS (https://github.com/skale-me/node-parquet) 绑定,但还没有针对 PHP 的绑定。但是考虑到上面提到的绑定,你应该可以很容易地为 PHP 编写绑定。

      【讨论】:

        【解决方案3】:

        我们已获得 Apache 许可 https://github.com/skipprd/php-parquet,这是一个用于 C++ https://github.com/apache/parquet-cpp 实现的 PHP 绑定,已通过 skippr.io 的实战测试。

        也很高兴看到对 jocoon/php-parquet 的另一项努力。所以现在有一个 C 绑定和一个 PHP 实现可供选择! :)

        免责声明:我是这个包的开发者。这并不意味着广告。该库是在 Apache 许可下发布的。随意提交问题或贡献。

        【讨论】:

        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
        • 这个答案在本质上与上面的答案完全相同。它链接到一个新的 Apache 许可项目,并详细说明了它实现的父项目。我相信它引入的答案和开源项目提供了真正的社区价值,值得继续发布,因为我们是它上面的答案。
        猜你喜欢
        • 2019-09-27
        • 2020-11-28
        • 2019-05-07
        • 2014-03-04
        • 1970-01-01
        • 1970-01-01
        • 2017-08-07
        • 2018-07-31
        • 2020-05-10
        相关资源
        最近更新 更多