sup*_*165 8 scala dataframe apache-spark apache-arrow
我已经在Python中使用Apache Arrow和Spark一段时间了,并且通过使用Pandas作为中介,我可以轻松地在数据帧和Arrow对象之间进行转换.
然而,最近,我已经从Python迁移到Scala与Spark交互,并且在Scala(Java)中使用Arrow并不像在Python中那样直观.我的基本需求是尽快将Spark数据帧(或RDD,因为它们很容易转换)转换为Arrow对象.我最初的想法是首先转换为Parquet并从Parquet转到Arrow,因为我记得那个pyarrow可以从Parquet读取.但是,如果我错了,请纠正我,在看了一段时间的Arrow Java文档后,我找不到Parquet to Arrow功能.Java版本中不存在此功能吗?有没有另一种方法可以将Spark数据帧提供给Arrow对象?也许将数据帧的列转换为数组然后转换为箭头对象?
任何帮助将非常感激.谢谢
编辑:找到以下链接,将镶木地板架构转换为箭头架构.但它似乎没有从我需要的镶木地板文件中返回一个Arrow对象:https: //github.com/apache/parquet-mr/blob/70f28810a5547219e18ffc3465f519c454fee6e5/parquet-arrow/src/main/java/org/apache /parquet/arrow/schema/SchemaConverter.java
Java 中还没有 Parquet <-> Arrow 转换器可用作库。你可以看看 Dremio ( https://github.com/dremio/dremio-oss/tree/master/sabot/kernel/src/main/java/com/dremio/exec/store /parquet)以获得灵感。我相信 Apache Parquet 项目会欢迎您为实现此功能做出贡献。
我们在 C++ 实现中为 Parquet 开发了一个 Arrow 读写器:https : //github.com/apache/parquet-cpp/tree/master/src/parquet/arrow。嵌套数据支持尚未完成,但在接下来的 6-12 个月内应该会更加完整(随着贡献者的加强,它会更快)。
| 归档时间: |
|
| 查看次数: |
2684 次 |
| 最近记录: |