问题标签 [apache-arrow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1152 浏览

python - apache箭头如何促进“跨系统通信无开销”?

由于“零复制读取”、“零 serde”和“跨系统通信没有开销”的承诺,我现在对 Apache Arrow 非常感兴趣。我对这个项目的理解(通过 pyarrow 的镜头)是它描述了数据的内存格式,这样多个任务可以像藏宝图一样读取它,并且都可以找到相同的数据(无需复制)。我想我可以在一个进程中看到它在 Python/Pandas 中是如何工作的;创建一个箭头数组非常容易,将它传递给不同的对象,并观察整个“零拷贝”的运行情况。

但是,当我们谈论没有开销的跨系统通信时,我几乎完全迷失了。例如,PySpark 如何将 Java 对象转换为箭头格式,然后将其传递给 Python/Pandas?我试图在这里查看代码,但对于非 java/scala 的人来说,它看起来像是将 spark 行转换为 Arrow 对象,然后转换为byteArrays(第 124 行),这看起来不像是零复制,零开销大部头书。

同样,如果我想尝试将 Arrow 数组从 Python/pyarrow 传递给 Rust(使用 Rust 的 Arrow API),我不知道该怎么做,特别是考虑到这种调用方法Python 中的 Rust 函数似乎不适用于 Arrow 原语。有没有办法将 Rust 和 Python 都指向相同的内存地址?我是否必须以某种方式将箭头数据作为 byteArray 发送?

0 投票
1 回答
1135 浏览

java - 在java中将Arrow转换为Parquet,反之亦然

我一直在寻找在 Java 中转换arrowparquet反之亦然的方法。

尽管 Python 库arrow完全支持上述转换,但我在 Java 中几乎找不到任何相同的文档。

arrow/parquet 有没有人在Java 库中遇到过这样的功能?

0 投票
1 回答
650 浏览

java - 使用 java API 编写 apache 箭头格式时是否存在大小限制/问题

我的箭头编写器从 CSV 文件读取数据适用于小于 1 GB 的数据,但停留在这个限制附近(编写代码似乎被阻止)。我有足够的内存给进程(-Xmx12g),数据大小约为 1.2GB。具有较少行和大约 0.4 GB 的类似结构化文件可以使用相同的代码正常工作。

我只是想知道,如果 apache 箭头当前对创建的向量有一些限制,或者对行数有限制。

0 投票
1 回答
121 浏览

java - apache-arrow 中是否可以使用 Java API 在单独的线程中创建部分向量?

在 apache 箭头中是否可以并行创建向量(不同的线程)?我假设由于编写器中的 setPosition(...) 调用,向量中条目的创建顺序不相关。但是当我尝试在并行线程中执行此操作时,我遇到了错误。当我按顺序执行时,它工作正常。我将 ComplexWriterImpl 与每个字段的子写入器一起使用。

实际错误是:

java.lang.IllegalStateException:访问 ArrowBuf 的引用计数应 >= 1

我很想知道,如果通过箭头中的编写器(在 Java 中)创建向量是否被设计为可以乱序并使用并行线程。

0 投票
1 回答
147 浏览

pyarrow - 如何为 R 安装箭头以访问 HDFS

我想访问 HDFS 上的镶木地板文件并想使用箭头库。但是,我需要知道客户端还需要安装哪些其他依赖项?例如,以下页面解释了使用 Python 的箭头(pyarrow)需要哪些依赖项,但我找不到 R 的那些依赖项。

0 投票
1 回答
212 浏览

c++ - 来自 iostream 或内存缓冲区的 Apache Arrow 表

我有一些使用 AWS API 从 AWS S3 检索镶木地板文件的代码。结果是一个标准 iostream:

从这里我想创建一个 Apache 箭头表而不将 iostream 保存到本地文件然后加载。但是,我在 API 中看不到任何帮助。Arrow 只提供从文件加载拼花的接口。

0 投票
0 回答
659 浏览

r - 如何从 R 中的 HDFS 读取镶木地板文件

我需要在我的 R 程序中读取存储在 HDFS(我有一个受 Kerberos 保护的 Hadoop 集群)上的镶木地板文件。我遇到了几个包,但没有一个能完全满足我的需要

  • rhadoop:它看起来像一个没有进一步开发的旧项目。这些库下的rhdfs包不支持 parquet 文件或 Kerberos。
  • 箭头:它似乎可以读取 parquet 文件,但没有连接到 HDFS

有没有其他库可以让我从 R 中的 HDFS 读取镶木地板文件?

我知道 sparklyr,但我相信我需要在运行 spark 驱动程序的机器上安装 spark?那是对的吗?我的 R 客户端是另一台机器。

0 投票
4 回答
2381 浏览

apache-spark - 如何通过增加 spark 的内存来解决 pyspark `org.apache.arrow.vector.util.OversizedAllocationException` 错误?

我正在执行一项工作pyspark,我曾一度使用分组聚合 Pandas UDF。这会导致以下(此处为缩写)错误:

我相当确定这是因为 pandas UDF 接收的组之一是巨大的,如果我减少数据集并删除足够的行,我可以毫无问题地运行我的 UDF。但是,我想使用我的原始数据集运行,即使我在具有 192.0 GiB RAM 的机器上运行这个 spark 作业,我仍然会遇到同样的错误。(并且 192.0 GiB 应该足以将整个数据集保存在内存中。)

如何为 spark 提供足够的内存来运行需要大量内存的分组聚合 Pandas UDF?

例如,是否有一些我错过的火花配置可以为 apache 箭头提供更多内存?

更长的错误信息

完整的错误信息在这里。

0 投票
1 回答
607 浏览

python - 从数据帧转换的 apache 箭头文件在使用 arrow.js 读取时给出 null

我使用将一个示例数据框转换为.arrow文件pyarrow

这会创建一个文件test.arrow

然后在 NodeJS 中,我用 arrowJS 加载文件。 https://arrow.apache.org/docs/js/

这打印像

我期待这个表的长度为 3 并table.get(0)给出第一行而不是null.

这是桌子的样子console.log(table._schema)

知道为什么它没有按预期获取数据吗?

0 投票
4 回答
4677 浏览

r - 使用 apache 箭头在一个 R 数据帧中读取分区 parquet 目录(所有文件)

如何使用箭头将分区镶木地板文件读入 R(没有任何火花)

情况

  1. 使用 Spark 管道创建镶木地板文件并保存在 S3 上
  2. 使用 RStudio/RShiny 读取一列作为索引以进行进一步分析

parquet 文件结构

从我的 Spark 创建的 parquet 文件由几个部分组成

如何将此 component_mapping.parquet 读入 R?

我试过的

但这失败并出现错误

如果我只读取目录的一个文件,它就可以工作

但我需要全部加载才能对其进行查询

我在文档中找到的

在 apache 箭头文档 https://arrow.apache.org/docs/r/reference/read_parquet.htmlhttps://arrow.apache.org/docs/r/reference/ParquetReaderProperties.html 我发现有一些read_parquet() 命令的属性,但我无法让它工作,也没有找到任何示例。

如何正确设置属性以读取完整目录?

帮助将不胜感激