问题标签 [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 投票
2 回答
8990 浏览

python - 使用 pyarrow 从分区拼花数据集中读取特定分区

我有一个有点大(~20 GB)的镶木地板格式的分区数据集。我想使用pyarrow. 我以为我可以使用 来完成此pyarrow.parquet.ParquetDataset操作,但似乎并非如此。这是一个小例子来说明我想要什么。

创建随机数据集:

我想读取分区 1 的所有值,仅读取分区 2 的 True。使用pandas.read_parquet,这是不可能的,我必须始终读取整个列。我尝试了以下方法pyarrow

这也不起作用:

我可以pyspark像这样轻松地做到这一点:

如下所示:

这可以用pyarrowor完成pandas,还是我需要一些自定义实现?

更新:根据 Wes 的要求,现在在JIRA上。

0 投票
1 回答
366 浏览

python-3.x - Apache 箭头、对齐和填充

我想使用 apache arrow,因为它使执行引擎能够利用现代处理器中包含的最新 SIMD(单输入多数据)操作,用于分析数据处理的本机矢量化优化。(https://arrow.apache.org/)。

从文档(https://arrow.apache.org/docs/memory_layout.html)中,我了解到内存分配确保大约 64 字节对齐。

为了验证这 64 字节对齐,我使用 numpy 数组的 __array_interface__ 数据成员,该数组指向存储数组内容的数据区域,并在其上计算模 64。如果结果为 0,则内存地址至少对齐 64 字节。

当我执行下面的代码时,在我的系统(Fedora)上它似乎工作(模 64 的结果为零)但是当我在同事的系统(Fedora 也是)上执行相同的代码时它不起作用:模的结果64 不是零。所以内存没有在 64 字节上对齐。

请在这里找到我的代码:

感谢您的帮助。

0 投票
1 回答
960 浏览

python - Apache 箭头,numpy 数组与零副本对齐

我将带有“零副本”的箭头对象转换为熊猫,但结果对象未对齐。

代码返回:alignment: 16

结论:NumPy 数组未对齐。当我将 pyarrow.table.Table 转换为“零副本”的 panda 时,我得出结论 pyarrow.table.Table 本身未对齐。我哪里错了?

0 投票
1 回答
670 浏览

apache - 是否可以使用 presto 在内存箭头表中查询,或者是否有某种方法可以使用 pandas 数据框作为 presto 查询引擎的数据源

是否可以使用 presto 在内存箭头表中进行查询,或者是否有某种方法可以使用 pandas 数据框作为 presto 查询引擎的数据源?

实际上我有镶木地板文件,我想将其转换为箭头并查询彻底的 presto 是否可能?

0 投票
1 回答
7432 浏览

apache-spark - PySpark:带有标量 Pandas UDF 的无效 returnType

我正在尝试从 pandas_udf 返回一个特定的结构。它在一个集群上工作,但在另一个集群上失败。我尝试在组上运行 udf,这要求返回类型是数据框。

这是我得到的例外:

我也尝试将架构更改为

但得到同样的例外。我怀疑这与我的 pyarrow 版本有关,它与我的 pyspark 版本不兼容。

任何帮助,将不胜感激。谢谢!

0 投票
1 回答
917 浏览

flatbuffers - flatbuffer中的数组结构?

假设我有以下 flatbuffer IDL 文件:

而且我想Monster在缓冲区中序列化一个由 2 个对象组成的数组。

显然,在序列化数据时可以为整个缓冲区创建以下内存布局:

这意味着现在所有inventory字段都位于一个连续的内存位置。

然而,在球场上也可以做到这一点mana吗?即我想用这个内存表示序列化我的对象:

其效果是将所有“法力”值转换为内存中的原始数组。

可以用 Flatbuffers 做到这一点吗?似乎字段只能在对象本身启动后进行序列化

0 投票
1 回答
4544 浏览

python - 将 Pandas DataFrame 与 In-Memory Feather 相互转换

使用 pandas 中的 IO 工具可以将 a 转换为DataFrame内存中的羽化缓冲区:

但是,使用相同的缓冲区转换回 DataFrame

导致错误:

ArrowInvalid:不是羽毛文件

如何将 DataFrame 转换为内存中的羽化表示,并相应地转换回 DataFrame?

预先感谢您的考虑和回复。

0 投票
1 回答
615 浏览

javascript - 我可以[反]序列化箭头/js实现中的数据框字典吗?

我想使用 Apache Arrow 将数据从 Django 后端发送到 Angular 前端。我想使用数据帧/表的字典作为消息中的有效负载。使用 pyarrow 在 python 微服务之间以这种方式共享数据是可能的,但我找不到使用箭头的 javascript 实现的方法。

有没有办法用箭头反序列化/序列化一个字典,其中字符串作为键,数据帧/表作为值在 JavaScript 端?

0 投票
1 回答
2592 浏览

python - 如何使用 Python pyarrow 从 Parquet 文件中过滤记录

我正在尝试从镶木地板文件中过滤特定记录。我正在使用 python pyarrow。我设法用熊猫做到了(见下面的代码)。大型镶木地板文件占用大量内存的问题。我正在寻找其他选择 - 有什么想法吗?

谢谢。

0 投票
2 回答
4698 浏览

apache-spark - 在 pyspark 中的 DataFrame 上使用 toPandas() 时出现神秘的“pyarrow.lib.ArrowInvalid:浮点值被截断”错误

我在不是很大的 DataFrame 上使用 toPandas() ,但出现以下异常:

有时,可以忽略此异常,我可以获得正确的结果,但更多时候,程序退出了。有谁知道这个神秘的错误?