我在 Python 中使用 Apache Arrow 和 Spark 已经有一段时间了,并且通过使用 Pandas 作为中介可以轻松地在数据帧和 Arrow 对象之间进行转换。
然而,最近,我已经从 Python 迁移到 Scala 以与 Spark 交互,并且使用 Arrow 在 Scala (Java) 中不像在 Python 中那样直观。我的基本需求是尽快将 Spark 数据帧(或 RDD,因为它们很容易转换)转换为 Arrow 对象。我最初的想法是先转换为 Parquet,然后从 Parquet 转到 Arrow,因为我记得 pyarrow 可以从 Parquet 读取。但是,如果我错了,请纠正我,在查看 Arrow Java 文档一段时间后,我找不到 Parquet to Arrow 函数。Java版没有这个功能吗?是否有另一种方法可以将 Spark 数据帧获取到 Arrow 对象?也许将数据框的列转换为数组然后转换为箭头对象?
任何帮助将非常感激。谢谢
编辑:找到将镶木地板模式转换为箭头模式的以下链接。但它似乎没有像我需要的那样从镶木地板文件返回箭头对象: https ://github.com/apache/parquet-mr/blob/70f28810a5547219e18ffc3465f519c454fee6e5/parquet-arrow/src/main/java/org/apache /parquet/arrow/schema/SchemaConverter.java