问题标签 [pyarrow]

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 回答
3054 浏览

python - 使用 pyarrow 与 pyspark 创建的镶木地板文件是否兼容?

我必须分两步将 JSON 中的分析数据转换为镶木地板。对于大量现有数据,我正在编写 PySpark 作业并做

但是对于增量数据,我计划使用 AWS Lambda。可能 PySpark 对它来说太过分了,因此我计划使用 PyArrow (我知道它不必要地涉及 Pandas,但我找不到更好的选择)。所以,基本上:

我想知道 PySpark 和 PyArrow 编写的 Parquet 文件是否兼容(相对于 Athena)?

0 投票
0 回答
967 浏览

python - Python:无法连接到 HDFS 文件

我已经尝试了许多不同的方法,但没有一个不起作用。例如,以下方式失败并出现错误“系统找不到指定的文件”。

例子:

错误

FileNotFoundError: [WinError 2] 系统找不到指定的文件

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
5999 浏览

python - 如何在 Python 中使用 pyarrow 读取带有条件的镶木地板文件

我已经从数据库中创建了一个包含三列(id、作者、标题)的镶木地板文件,并且想要读取带有条件(标题='Learn Python')的镶木地板文件。下面提到的是我用于此 POC 的 python 代码。

如何在 read_pyarrow 方法中添加条件(title='Learn Python')?

0 投票
3 回答
3259 浏览

python - 如何有效地将 Google BigTable 中的行读入 pandas DataFrame

用例:

我正在使用 Google BigTable 来存储这样的计数:

我想读取给定范围的行键的所有行(让我们假设在这种情况下全部)并聚合每列的值。

一个简单的实现会在聚合计数时查询行并迭代行,如下所示:

问题:

有没有办法在 pandas DataFrame 中有效地加载结果行并利用 pandas 性能进行聚合?

我想避免用于计算聚合的 for 循环,因为众所周知它效率很低。

我知道Apache Arrow 项目及其python 绑定,虽然 HBase 被称为支持项目(并且 Google BigTable 被宣传为与 HBase 非常相似),但我似乎找不到将它用于用例的方法我在这里描述过。

0 投票
1 回答
1272 浏览

parquet - 如何使用 pyarrow 流式传输镶木地板?

我正在尝试逐个读取大型镶木地板文件数据集,进行一些操作,然后继续进行下一个操作,而不将它们全部保存在内存中。我需要这样做,因为整个数据集不适合内存。以前我使用过ParquetDataset并且我知道RecordBatchStreamReader但我不确定如何将它们结合起来。

我怎样才能使用 Pyarrow 来做到这一点?

0 投票
2 回答
5969 浏览

python - 如何在 Alpine Docker 映像上安装 pyarrow?

我正在尝试在我的 alpine docker 映像中使用 pip 安装 pyarrow,但 pip 无法找到该软件包。

我正在使用以下 Dockerfile:

输出:

有没有社区能够在高山容器中安装 pyarrow?

0 投票
1 回答
1614 浏览

python - 使用 pyarrow 将字符串时间戳转换为日期时间

在写入镶木地板文件之前,是否有可能将 pyarrow 表中的字符串时间戳转换为日期时间格式?

0 投票
2 回答
2579 浏览

python - Pyarrow s3fs 按时间戳分区

是否可以在将镶木地板文件写入时使用表中的时间戳字段通过“”对文件系统pyarrow进行分区?s3fsYYYY/MM/DD/HHs3

0 投票
0 回答
1114 浏览

python - 使用 pyarrow.parquet ParquetDataset 的模式出现问题(如何强制使用特定模式)

让我们解释一下上下文:有人给了我从多个 .csv 文件中获取的多个镶木地板文件。我想阅读所有这些镶木地板文件并制作一个大数据集。为此,我使用 pyarrow.parquet 包。

所以,我有多个镶木地板文件(我们可以称它们为 file1.pq;file2.pq;file3.pq)。所有文件具有完全相同的结构:相同的列名和相同的列内容。但有时在一个文件中一列的所有行中,值相同且等于 NA。在这种特殊情况下,函数dataset = pq.ParquetDataset(file_list)会因为物理类型改变而失败。

让我们做一个视觉例子:

转换为镶木地板后,我们有:

我尝试打开每个镶木地板文件并使用以下内容修改列类型:

在哪里:

file_list包含所有镶木地板文件

list_have_to_change是必须更改名称的列名列表的列表。在我们的示例中是[[],[C1],[]].

但是在to_parquet()方法模式返回之后

所以它改变了任何东西。

问题:当我保存到 parquet 文件时如何强制模式,或者如何将 pq.ParquetDataset(file_list) 与非连贯的物理类型一起使用?

希望我清楚,提前感谢您的帮助。

0 投票
1 回答
2152 浏览

python - 从 PyArrow 编写 Parquet 文件时如何指定逻辑类型?

我正在使用PyArrow从Python 中的一些Pandas数据帧编写Parquet文件。

有没有办法可以指定写入镶木地板文件的逻辑类型?

例如,np.uint32在 PyArrow 中写入一列会在 parquet 文件中产生一个 INT64 列,而使用fastparquet模块写入相同会导致一个逻辑类型为 UINT_32 的 INT32 列(这是我从 PyArrow 获得的行为) .

例如:

这输出:

我对其他列类型也有类似的问题,所以真的在寻找一种通用的方法来指定使用 PyArrow 编写时使用的逻辑类型。