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

python - 如何使用 pyarrow 从 S3 读取镶木地板文件列表作为熊猫数据框?

boto3我有一种使用(1.4.4)、pyarrow(0.4.1) 和pandas(0.20.3)来实现这一目标的 hacky 方法。

首先,我可以像这样在本地读取单个 parquet 文件:

我还可以像这样在本地读取镶木地板文件的目录:

两者都像魅力一样工作。现在我想用存储在 S3 存储桶中的文件远程实现相同的目标。我希望这样的事情会起作用:

但它没有:

OSError: Passed non-file path: s3n://dsn/to/my/bucket

在彻底阅读了 pyarrow 的文档之后,目前这似乎是不可能。所以我提出了以下解决方案:

从 S3 读取单个文件并获取 pandas 数据框:

这里是我从 S3 文件夹路径创建 pandas 数据框的 hacky、未优化的解决方案:

有没有更好的方法来实现这一目标?也许某种使用pyarrow的熊猫连接器?我想避免使用pyspark,但如果没有其他解决方案,那么我会接受。

0 投票
4 回答
63969 浏览

python - 如何在 python 中使用 pyarrow 从 S3 读取分区镶木地板文件

我正在寻找使用 python 从 s3 中读取多个分区目录的数据的方法。

data_folder/serial_number=1/cur_date=20-12-2012/abcdsd0324324.snappy.parquet data_folder/serial_number=2/cur_date=27-12-2012/asdsdfsd0324324.snappy.parquet

pyarrow 的 ParquetDataset 模块具有从分区读取的能力。所以我尝试了以下代码:

它抛出了以下错误:

根据 pyarrow 的文档,我尝试使用 s3fs 作为文件系统,即:

这会引发以下错误:

我仅限于使用 ECS 集群,因此spark/pyspark 不是一个选项

有没有一种方法可以轻松地从 s3 中的此类分区目录中的 python 中轻松读取镶木地板文件?我觉得列出所有目录然后阅读并不是这个链接中建议的好习惯。我需要将读取的数据转换为 pandas 数据帧以进行进一步处理,因此更喜欢与 fastparquet 或 pyarrow 相关的选项。我也对 python 中的其他选项持开放态度。

0 投票
1 回答
924 浏览

python - pyarrow 导致 python 在 parquet.dll 上崩溃错误

我有一个获取数据的脚本,并将数据存储在 Pandas 数据框中。

我做了 3 个数据聚合,MEAN/STDEV/MAX,每一个都被转换为一个箭头表并作为 parquet 文件保存在磁盘上。

我使用 pyarrow 将 Pandas 框架转换为箭头表。(我无法创建 pyarrow 标签,因为我显然需要更多点)

此代码适用于 100-500 条记录,但对于更大的容量会出错。我也知道这段代码有效,因为另一个开发人员在镜像机器上使用相同的代码(就硬件而言)并且它有效。我要保存的数据集的顺序是数百万。

代码错误出@ line pq.write_table(arrowTable, filePath)。

这是代码:

Python 崩溃并抛出“python 必须关闭错误”。

以下是详细错误:

问题事件名称:APPCRASH 应用程序名称:python.exe 应用程序版本:3.5.2150.1013 应用程序时间戳:577be340 故障模块名称:parquet.dll 故障模块版本:0.0.0.0 故障模块时间戳:59403662 异常代码:c0000005 异常偏移量:000000000005f990 操作系统版本:6.3.9600.2.0.0.400.8 区域设置 ID:1033

在线阅读我们的隐私声明:http: //go.microsoft.com/fwlink/ ?linkid=280262

如果在线隐私声明不可用,请离线阅读我们的隐私声明:C:\Windows\system32\en-US\erofflps.txt


我曾尝试更新 Python 和 pyarrow,但没有成功。

以下是python的版本:

以下是 pip freeze 的结果:

我想知道是否有人可以阐明为什么 pyarrow 不能在某台机器上工作?

谢谢,阿杜

0 投票
2 回答
1564 浏览

numpy - 从/向镶木地板文件读取/写入 pyarrow 张量

pyarrowpyarrow.Tensor中,将 a (例如从 a 创建numpy.ndarray)写入 Parquet 文件的建议方法是什么?甚至可以不必经过pyarrow.Tableand pandas.DataFrame

0 投票
1 回答
1930 浏览

python - 加载索引具有冗余列的镶木地板文件时出现 pyarrow 问题

我正在使用 pandas/dask 进行计算,并将我的数据存储在磁盘上的 parquet 文件中。问题是,我有一个“时间”列,还有一个称为时间的索引。我想保留两者。当我存储数据然后稍后加载时,我收到以下错误:

这是pyarrow中的一个错误,还是镶木地板不可能做到这一点,还是我做错了什么?

更新:删除冗余列“时间”并仅保留索引解决。所以我想问题是在镶木地板的某个地方创建了唯一的列标识符集。

0 投票
4 回答
34542 浏览

python - 使用 pyarrow 如何附加到镶木地板文件?

你如何附加/更新到一个parquet文件pyarrow

我在文档中没有找到关于附加镶木地板文件的任何内容。而且,您可以使用pyarrow 多处理来插入/更新数据吗?

0 投票
1 回答
3873 浏览

python - 当数据帧包含混合 dtypes 时,Pyarrow from_pandas 会使解释器崩溃

使用pyarrow 0.6.0(或更低版本),以下代码段会导致 Python 解释器崩溃:

“Python 解释器已停止工作”(在 windows 下)

0 投票
4 回答
22410 浏览

python - 如何将巨大的熊猫数据框保存到 hdfs?

我正在使用熊猫和火花数据框。数据帧总是非常大(> 20 GB),标准的火花函数不足以满足这些大小。目前我正在将我的熊猫数据框转换为像这样的火花数据框:

我进行这种转换是因为使用 spark 将数据帧写入 hdfs 非常容易:

但是对于大于 2 GB 的数据帧,转换失败。如果我将 spark 数据框转换为 pandas,我可以使用 pyarrow:

这是从 spark 到 pandas 的快速转换,它也适用于大于 2 GB 的数据帧。我还没有找到相反的方法。意味着有一个熊猫数据框,我在 pyarrow 的帮助下将其转换为火花。问题是我真的找不到如何将 pandas 数据帧写入 hdfs。

我的熊猫版本:0.19.0

0 投票
1 回答
5305 浏览

hadoop - PyArrow 中的 hdfs.connect() 与 HdfsClient

如果这是一个菜鸟问题,我深表歉意,但我找不到任何相关参考 -

这两者有什么区别?

如果我想使用 pyarrow 从 hdfs 读取镶木地板文件,我会使用哪一个?

0 投票
2 回答
4117 浏览

hdfs - 将 pyarrow 与 libhdfs3 连接

我正在尝试通过 pyarrows' HdfsClient/连接到 hadoop 集群hdfs.connect()

我注意到 pyarrows 的have_libhdfs3()函数,它返回 False。

如何获得 pyarrow 所需的 hdfs 支持?我知道 libhdfs3 有一个 conda 命令,但我非常需要通过一些不涉及 conda 之类的“香草”方式使其工作。

如果它很重要,我有兴趣阅读的文件是镶木地板文件。

编辑:

库的创建者hdfs3制作了一个允许安装 libhdfs3 的仓库:

http://hdfs3.readthedocs.io/en/latest/install.html