问题标签 [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.
python - apache箭头如何促进“跨系统通信无开销”?
由于“零复制读取”、“零 serde”和“跨系统通信没有开销”的承诺,我现在对 Apache Arrow 非常感兴趣。我对这个项目的理解(通过 pyarrow 的镜头)是它描述了数据的内存和格式,这样多个任务可以像藏宝图一样读取它,并且都可以找到相同的数据(无需复制)。我想我可以在一个进程中看到它在 Python/Pandas 中是如何工作的;创建一个箭头数组非常容易,将它传递给不同的对象,并观察整个“零拷贝”的运行情况。
但是,当我们谈论没有开销的跨系统通信时,我几乎完全迷失了。例如,PySpark 如何将 Java 对象转换为箭头格式,然后将其传递给 Python/Pandas?我试图在这里查看代码,但对于非 java/scala 的人来说,它看起来像是将 spark 行转换为 Arrow 对象,然后转换为byteArray
s(第 124 行),这看起来不像是零复制,零开销大部头书。
同样,如果我想尝试将 Arrow 数组从 Python/pyarrow 传递给 Rust(使用 Rust 的 Arrow API),我不知道该怎么做,特别是考虑到这种调用方法Python 中的 Rust 函数似乎不适用于 Arrow 原语。有没有办法将 Rust 和 Python 都指向相同的内存地址?我是否必须以某种方式将箭头数据作为 byteArray 发送?
java - 在java中将Arrow转换为Parquet,反之亦然
我一直在寻找在 Java 中转换arrow
为parquet
反之亦然的方法。
尽管 Python 库arrow
完全支持上述转换,但我在 Java 中几乎找不到任何相同的文档。
arrow/parquet
有没有人在Java 库中遇到过这样的功能?
java - 使用 java API 编写 apache 箭头格式时是否存在大小限制/问题
我的箭头编写器从 CSV 文件读取数据适用于小于 1 GB 的数据,但停留在这个限制附近(编写代码似乎被阻止)。我有足够的内存给进程(-Xmx12g),数据大小约为 1.2GB。具有较少行和大约 0.4 GB 的类似结构化文件可以使用相同的代码正常工作。
我只是想知道,如果 apache 箭头当前对创建的向量有一些限制,或者对行数有限制。
java - apache-arrow 中是否可以使用 Java API 在单独的线程中创建部分向量?
在 apache 箭头中是否可以并行创建向量(不同的线程)?我假设由于编写器中的 setPosition(...) 调用,向量中条目的创建顺序不相关。但是当我尝试在并行线程中执行此操作时,我遇到了错误。当我按顺序执行时,它工作正常。我将 ComplexWriterImpl 与每个字段的子写入器一起使用。
实际错误是:
java.lang.IllegalStateException:访问 ArrowBuf 的引用计数应 >= 1
我很想知道,如果通过箭头中的编写器(在 Java 中)创建向量是否被设计为可以乱序并使用并行线程。
c++ - 来自 iostream 或内存缓冲区的 Apache Arrow 表
我有一些使用 AWS API 从 AWS S3 检索镶木地板文件的代码。结果是一个标准 iostream:
从这里我想创建一个 Apache 箭头表而不将 iostream 保存到本地文件然后加载。但是,我在 API 中看不到任何帮助。Arrow 只提供从文件加载拼花的接口。
r - 如何从 R 中的 HDFS 读取镶木地板文件
我需要在我的 R 程序中读取存储在 HDFS(我有一个受 Kerberos 保护的 Hadoop 集群)上的镶木地板文件。我遇到了几个包,但没有一个能完全满足我的需要
- rhadoop:它看起来像一个没有进一步开发的旧项目。这些库下的rhdfs包不支持 parquet 文件或 Kerberos。
- 箭头:它似乎可以读取 parquet 文件,但没有连接到 HDFS
有没有其他库可以让我从 R 中的 HDFS 读取镶木地板文件?
我知道 sparklyr,但我相信我需要在运行 spark 驱动程序的机器上安装 spark?那是对的吗?我的 R 客户端是另一台机器。
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 箭头提供更多内存?
更长的错误信息
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)
知道为什么它没有按预期获取数据吗?
r - 使用 apache 箭头在一个 R 数据帧中读取分区 parquet 目录(所有文件)
如何使用箭头将分区镶木地板文件读入 R(没有任何火花)
情况
- 使用 Spark 管道创建镶木地板文件并保存在 S3 上
- 使用 RStudio/RShiny 读取一列作为索引以进行进一步分析
parquet 文件结构
从我的 Spark 创建的 parquet 文件由几个部分组成
如何将此 component_mapping.parquet 读入 R?
我试过的
但这失败并出现错误
如果我只读取目录的一个文件,它就可以工作
但我需要全部加载才能对其进行查询
我在文档中找到的
在 apache 箭头文档 https://arrow.apache.org/docs/r/reference/read_parquet.html和 https://arrow.apache.org/docs/r/reference/ParquetReaderProperties.html 我发现有一些read_parquet() 命令的属性,但我无法让它工作,也没有找到任何示例。
如何正确设置属性以读取完整目录?
帮助将不胜感激