是否有任何库可用于从 PHP 应用程序以 ORC 或 Parquet 格式编写自定义数据文件以进行 Presto 查询?
如果不是,在这种情况下的最佳实践是什么?希望不涉及设置Map Reduce集群。
10 倍 - 尼尔
抱歉撞到,但我觉得这个问题应该更新。
去年,我发布了第一个用于读取/写入 Parquet 文件的公开可用的 PHP 库,php-parquet
。 请参阅 https://github.com/jocoon/php-parquet 和/或已发布的作曲家包 https://packagist.org/packages/jocoon/parquet(composer require jocoon/parquet
)。它是基于Apache Thrift规范的parquet-dotnet的部分端口,并受到其启发。
只要您没有特殊的压缩需求(例如snappy
),你不需要异国情调的PHP扩展。 由于可能存在任意精度的数字,因此需要BCMath
和GMP
,并且您需要提供zlib
(AFAIK 是 Parquet 文件最常用/典型的压缩方法,更准确地说:gzip)。
基本使用说明在相应的 github 页面上提供。
免责声明:我是这个包的开发者。这不是广告。该库在 MIT 许可下发布。请随时提交问题或贡献。
有一个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 编写绑定。
我们已经获得了Apache许可 https://github.com/skipprd/php-parquet,这是一个用于C++ https://github.com/apache/parquet-cpp 实现的PHP绑定,经过 skippr.io 的实战测试。
很高兴看到jocoon/php-parquet的另一项努力。所以现在有一个 C 绑定和一个 PHP 实现可供选择!:)
免责声明:我是这个包的开发者。这不是广告。该库在 Apache 许可证下发布。请随时提交问题或贡献。