问题标签 [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.
io - 使用 pyarrow.parquet 编写数据集时,是否可以覆盖文件名的 uuid 自动分配?
假设我有一个 pandas DataFrame df
,我想使用 pyarrow parquet 作为数据集存储在磁盘上,我会这样做:
table = pyarrow.Table.from_pandas(df)
pyarrow.parquet.write_to_dataset(table, root_path=some_path, partition_cols=['a',])
在磁盘上,数据集看起来像这样:
some_path
├── a=1
____├── 4498704937d84fe5abebb3f06515ab2d.parquet
├── a=2
____├── 8bcfaed8986c4bdba587aaaee532370c.parquet
问:我是否可以在数据集写入期间以某种方式覆盖长 UUID 作为文件名的自动分配?我的目的是当我有一个新版本的df
. 目前,如果我尝试再次写入数据集,另一个新的唯一命名的 [UUID].parquet 文件将放置在旧文件旁边,其中包含相同的冗余数据。
python - Pyarrow 在使用 pandas to_parquet() 时应用模式
我有一个非常宽的数据框(20,000 列),主要由 Pandas 中的 float64 列组成。我想将这些列转换为 float32 并写入 Parquet 格式。我这样做是因为这些文件的下游用户是内存有限的小容器。
我目前在 Pandas 中进行投射,但在广泛的数据集上这非常慢,然后写入 parquet。是否可以在执行 write to_parquet 过程本身时转换类型?下面显示了一个虚拟示例。
pandas - 什么是 pyarrow 表?它会替代熊猫数据框吗?
我已经尝试阅读文档,但我仍然感到困惑。pyarrow 表是否能够进行 groupbys 并具有所有美妙的 pandas 功能?
但现在是虎头蛇尾:
pyarrow 是一个更适合熊猫内部的库还是什么?
python - 如何使用 Pandas 编写分区 Parquet 文件
我正在尝试将 Pandas 数据框写入分区文件:
从文档中,我希望partition_cols
将作为 kwargs 传递给 pyarrow 库。如何使用 pandas 将分区文件写入本地磁盘?
windows - Windows 上的 pyarrow hdfs.connect
我想使用 pyarrow 从 hdfs 读取和写入。
我在我的 Windows 10 64 位系统上安装了 hadoop,如下所示: https ://github.com/MuhammadBilalYar/Hadoop-On-Window/wiki/Step-by-step-Hadoop-2.8.0-installation-on-Window-10 并用 pip 安装了 pyarrow。
但是,如果我想在 python 中连接到 hdfs,我会收到以下错误:
我按照http://wesmckinney.com/blog/python-hdfs-interfaces/中的描述检查了我的路径变量
我能做些什么来解决这个问题?甚至可以在 Windows 上使用 pyarrow.hdfs.connect 函数吗?
谢谢你的帮助!
parquet - Apache-Drill 查询镶木地板文件:镶木地板记录阅读器出错
我使用 Pyarrow 创建了一个 parquet 文件,可以使用 Pyspark 对其进行查询。但是它不能使用最近安装的 Apache-drill(1.14) 进行查询,它可以使用其他数据格式,包括 csv、json 和 RDB。有人可以帮我解决问题所在,我该如何解决?谢谢!
(我能够运行 count(*) 查询,但无法在下面运行查询)
这是我的查询和错误消息:
查询执行失败
原因:
pandas - 使用 pyarrow/parquet-cpp 重新分区 parquet-mr 生成的镶木地板会使文件大小增加 x30?
使用 AWS Firehose,我将传入记录转换为镶木地板。在一个示例中,我有 150k 条相同的记录进入 firehose,并且单个 30kb parquet 被写入 s3。由于 firehose 对数据的分区方式,我们在 parquet 中读取了一个辅助进程(由 s3 put 事件触发的 lambda)并根据事件本身的日期对其进行重新分区。在这个重新分区过程之后,30kb 的文件大小跳到 900kb。
检查两个镶木地板文件-
- 元不变
- 数据没有变化
- 他们都使用 SNAPPY 压缩
- firehose parquet 由 parquet-mr 创建,pyarrow 生成的 parquet 由 parquet-cpp 创建
- pyarrow 生成的 parquet 有额外的 pandas 标头
完整的重新分区过程-
我想会有一些尺寸变化,但我惊讶地发现有这么大的差异。鉴于我所描述的过程,什么会导致源拼花从 30kb 变为 900kb?
python - pyarrow的内存泄漏?
对于较大文件的解析,需要依次循环写入大量parquet文件。但是,似乎此任务消耗的内存在每次迭代中都会增加,而我希望它保持不变(因为不应在内存中附加任何内容)。这使得扩展变得棘手。
我添加了一个最小可重现示例,它创建了 10 000 个镶木地板并将循环附加到它。
有人知道导致这种泄漏的原因以及如何防止泄漏吗?
python - 无法加载 libhdfs
尝试使用 pyarrow 访问 hdfs 文件但无法正常工作,下面是代码,非常感谢您。
回溯(最后一次调用):文件“”,第 1 行,文件“/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/pyarrow/hdfs.py”,第 183 行,连接 extra_conf =extra_conf) 文件“/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/pyarrow/hdfs.py”,第 37 行,在 init self._connect(host, port, user, kerb_ticket, driver, extra_conf)文件“pyarrow/io-hdfs.pxi”,第 89 行,在 pyarrow.lib.HadoopFileSystem._connect 文件“pyarrow/error.pxi”,第 83 行,在 pyarrow.lib.check_status pyarrow.lib.ArrowIOError:无法加载 libhdfs
apache-spark - 在 pyspark 中的 DataFrame 上使用 toPandas() 时出现神秘的“pyarrow.lib.ArrowInvalid:浮点值被截断”错误
我在不是很大的 DataFrame 上使用 toPandas() ,但出现以下异常:
有时,可以忽略此异常,我可以获得正确的结果,但更多时候,程序退出了。有谁知道这个神秘的错误?