如何从PHP代码创建ORC或Parquet文件?

时间:2017-06-27 12:33:29

标签: php hive parquet orc presto

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

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

10X - Nir ​​

3 个答案:

答案 0 :(得分:3)

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编写。

答案 1 :(得分:2)

对不起,撞到了,但我觉得这个问题应该更新。

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

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

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

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

答案 2 :(得分:0)

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

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

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