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

parquet - HDFS(远程文件系统)的 Apache Arrow 连接问题

我想连接 pyarrow 以在 hdfs 中读取和写入镶木地板文件但我面临一些连接问题

我安装了 pyarrow 和 python pandas 现在我正在尝试在远程机器上连接 hdfs

参考链接 - https://towardsdatascience.com/a-gentle-introduction-to-apache-arrow-with-apache-spark-and-pandas-bb19ffe0ddae

错误信息

0 投票
1 回答
983 浏览

python - 有没有办法在 PySpark 中为 pandas_udf 设置最小批量大小?

我正在使用 pandas_udf 在我的 spark 集群上应用机器学习模型,并且有兴趣预定义通过箭头发送到 UDF 的最小记录数。

我遵循了大部分UDF的databricks教程...... https://docs.databricks.com/applications/deep-learning/inference/resnet-model-inference-tensorflow.html

在教程中,我将 spark 会议设置为具有最大批量大小并启用箭头。我可以轻松设置最大批量大小,但是我想知道是否有类似的方法来设置 UDF 将处理的最小批量大小?

我正在运行 spark 版本 2.4.3 和 python 3.6.0。

0 投票
1 回答
133 浏览

pyarrow - 通过 C++ API 将 Python 序列转换为箭头数组

我正在尝试研究 Arrow 如何arrow::Array使用下面的 C++ API 将 python 列表转换为等价物。

该文件编译得很好,但是我在arrow/cpp/src/arrow/python/iterators.h第 44 行遇到了分段错误PyCheck_Array

我的调试器中的错误是EXC_BAD_ACCESS,但是当我在调试控制台中询问它时,它似乎在内存中:

在此处输入图像描述

任何帮助表示赞赏。

0 投票
1 回答
1224 浏览

pyarrow - 是否有 Python 模块可以使用 pyarrow 读取 avro 文件?

我知道有 pyarrow.parquet 用于将镶木地板文件读取为箭头表,但我正在寻找 avro 的等价物?

0 投票
1 回答
15480 浏览

parquet - 阿帕奇拼花和箭头之间的区别

我正在寻找一种方法来加速我的内存密集型前端 vis 应用程序。我看到有人推荐 Apache Arrow,而我正在研究它,我对 Parquet 和 Arrow 之间的区别感到困惑。

它们都是列式数据结构。最初我认为 parquet 是用于磁盘的,而箭头是用于内存格式的。但是,我刚刚了解到你也可以将箭头保存到办公桌上的文件中,比如 abc.arrow 那样的话,有什么区别呢?他们不是在做同样的事情吗?

0 投票
0 回答
623 浏览

python - pyarrow.Table 是否适合长期存储 pandas DataFrame?

试图想出一个快速的 Pandas 数据帧序列化和长期存储的解决方案。数据框内容是表格的,但由用户提供,可以是任意的,因此可以是完全文本列和完全数字/布尔列。

主要目标是:

  • 尽快序列化数据帧,以便将其转储到磁盘上。

  • 使用格式,我稍后可以从磁盘加载回数据帧。

  • 好吧,序列化和紧凑输出文件的内存占用最少。

运行基准比较不同的序列化方法,包括:

  • 实木复合地板:df.to_parquet()
  • 羽毛:df.to_feather()
  • JSON:df.to_json()
  • CSV:df.to_csv()
  • PyArrow:pyarrow.default_serialization_context().serialize(df)
  • PyArrow.Table:pyarrow.default_serialization_context().serialize(pyarrow.Table.from_pandas(df))

在此期间序列化速度和内存占用可能是最大的因素(阅读:摆脱数据,尽快将其转储到磁盘)。

奇怪的是,在我们的基准测试中,序列化pyarrow.Table似乎是最平衡且相当快的。

问题:

  1. 在理解直接使用 PyArrow 序列化数据帧和 serializing 之间的区别时,我是否遗漏了什么?pyarrow.TableTable 在数据帧主要由字符串组成的情况下闪耀,这在我们的案例中很常见。

  2. pyarrow.Table长期存储数据帧的有效选择吗?它似乎“有效”,但大多数人只是坚持使用 Parquet 或其他东西。

  3. Parquet/Feather 在内存/存储大小方面与 pyarrow.Table 一样好,但在半文本数据帧上相当慢(慢 2-3 倍)。我可能做错了什么吗?

根据我们的基准,对于混合类型的数据帧,JSON 似乎仍然是一个选项。

如果需要,我可以提供数字。

0 投票
2 回答
1716 浏览

javascript - SQL 在浏览器中的 apache 箭头之上?

我有存储在客户端浏览器内存中的数据。例如,假设数据集如下:

我想在 javascript 中对这些数据运行重要的 SQL 语句,例如:

我会得到:

我在 javascript 中的数据存储为 apache Arrow (也与Perspective一起使用),我也想对该 apache Arrow 数据执行 SQL。作为最后的手段,我认为可以在 wasm 中使用 sqllite,但我希望有一种更简单的方法可以直接查询 Arrow 数据,而无需将其全部移动到 sqllite 存储中以便对其执行查询。

有没有办法做到这一点?

0 投票
1 回答
410 浏览

windows - 箭头构建在 Windows 中失败

我正在尝试在 Windows 上离线构建 Apache Arrow。根据网站上的说明,我已经下载了所有依赖项并设置了环境变量:

我正在使用以下命令运行构建:

我的变量设置如下:

当我运行它时,我会收到以下错误,抱怨找不到 rapidjson 头文件(即使它们存在于上面的列表中):

我可以通过在我的源代码旁边手动复制 rapidjson 头文件来解决这个问题(理想情况下,我不想这样做,而是构建系统会自动拾取它)。即使在这一步之后,我也会收到以下错误:

这似乎是由于 Thrift 没有正确构建的事实:

为什么找不到所有这些文件?另外,为什么没有设置提升库的路径?在构建箭头本身时,会自动解析到 Boost 的路径。

这种情况正在发生,而其他依赖项(如 snappy 或 brotli)正在构建良好。知道为什么会这样吗?我在 Windows 中缺少一个依赖项吗?

任何帮助都非常感谢。

0 投票
1 回答
2582 浏览

pyarrow - 如何使用 pyarrow.read_csv 添加/更改列名?

我目前正在尝试将一个没有任何标题的大 csv 文件(50GB+)导入到 pyarrow 表中,总体目标是将此文件导出为 Parquet 格式,并进一步在 Pandas 或 Dask DataFrame 中处理它。如何在 pyarrow 中为 csv 文件指定列名和列 dtype?

我已经考虑将标头附加到 csv 文件中。这会强制完全重写文件,这看起来像是不必要的开销。据我所知,pyarrow 提供了模式来定义特定列的 dtypes,但是文档在将 csv 文件转换为箭头表时缺少这样做的具体示例。

想象一下,这个 csv 文件只是一个简单的例子,即两列“A”和“B”。我当前的代码如下所示:

如果我打印出最终表格,它不会更改列的名称。

我现在如何更改加载的列名和 dtypes?是否还有可能例如传入包含名称及其数据类型的字典?

0 投票
1 回答
419 浏览

parquet - parquet:具有不同列的数据集文件

使用 pyarrow。我有一个由多个镶木地板文件组成的镶木地板数据集。如果文件之间的列不同,那么我会得到“ValueError:架构不同”。

有没有办法避免这种情况?这意味着我想要一个由文件组成的数据集,每个文件都包含不同的列。

我想这可以通过 pyarrow 来完成,如果数据集的特定组件文件中不存在这些列,则将缺失列的值填充为 na。

谢谢