【发布时间】:2018-01-03 13:09:10
【问题描述】:
我在 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 对象?也许将数据框的列转换为数组然后转换为箭头对象?
任何帮助将不胜感激。谢谢
编辑:找到将镶木地板模式转换为箭头模式的以下链接。但它似乎没有像我需要的那样从镶木地板文件中返回 Arrow 对象: https://github.com/apache/parquet-mr/blob/70f28810a5547219e18ffc3465f519c454fee6e5/parquet-arrow/src/main/java/org/apache/parquet/arrow/schema/SchemaConverter.java
【问题讨论】:
-
Wes McKinney 是回答这个问题的最佳人选之一 [恕我直言]。我给他发了推文(twitter.com/gstaubli/status/895763929653157888),希望得到回应。手指交叉。
标签: scala apache-spark dataframe apache-arrow