问题标签 [fastparquet]
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.
python - 是否有任何 Python 库支持将结构数组写入 Parquet 文件?
我想将某些列是字符串数组或结构数组(通常是键值对)的数据写入 Parquet 文件以在 AWS Athena 中使用。
在找到两个支持写入 Parquet 文件的 Python 库(Arrow 和 fastparquet)后,我一直在努力尝试实现结构数组。
编写 Parquet 文件的问题的最佳答案列出了这两个库(并提到缺少对嵌套数据的支持)。
那么有没有办法从 Python 将嵌套数据写入 Parquet 文件?
为了存储键/值,我使用Arrow尝试了以下操作。
当我运行代码时,我收到以下消息:
最近 Arrow JIRA 票证中包含相同错误消息的答案表明正在进行支持结构的工作,尽管我不清楚它是否涵盖写入或仅读取这些结构。
当我尝试使用fastparquet存储数据时(就像我有一个字符串列表时一样):
没有给出错误消息,但在 parquet-tools 中查看时,我注意到数据是 Base64 编码的 JSON。
我猜这是意料之中的,因为fastparquet 不支持嵌套对象数组。
parquet - 在单个多核机器上索引大型 dask 数据帧时的内存使用情况
我正在尝试将Wikipedia CirrusSearch 转储转储为 Parquet 支持的 dask 数据帧,该数据帧由 450G 16 核 GCP 实例上的标题索引。CirrusSearch 转储以单个 json 行格式文件的形式出现。英文 Wipedia 转储包含 5M 记录,压缩为 12G,扩展为 90+G。一个重要的细节是记录并不完全平坦。
最简单的方法是
第一个问题是默认调度器只使用一个内核。这个问题可以通过明确使用分布式或多处理调度程序来避免。
我尝试过的所有调度程序和设置的更大问题是内存使用。似乎 dask 在索引时尝试将整个数据帧加载到内存中。即使是 450G 的 RAM 也不够用。
- 如何减少此任务的内存使用量?
- 如何在不进行反复试验的情况下估算所需的最小内存?
- 有更好的方法吗?
python - 使用 dask read_parquet 方法过滤会产生不需要的结果
我正在尝试使用dask
read_parquet
方法和filters
kwarg 读取镶木地板文件。但是它有时不会根据给定条件进行过滤。
dates
示例:使用列创建和保存数据框
当我从文件夹中读取并过滤dates
列时,'test_par'
它似乎不起作用
正如您在输出中看到的那样,2018-07-03
并且2018-07-04
存在。
难道我做错了什么 ?还是我应该在 github 上报告这个?
python - 在不读取文件的情况下使用 parquet 文件统计信息
据我了解,镶木地板文件具有列的最小/最大统计信息。我的问题是如何在不读取整个文件的情况下使用 python 读取这些统计信息?
如果有帮助,我也有_common_metadata
文件_metadata
。
我的具体问题是获取此文件系统中每个证券交易所分区的最大日期(每个年份分区包含多个具有日期列的镶木地板文件):
python-3.x - 它是 fastparquet 模块中的错误吗
我正在使用 AWS sagemaker Jupiter 笔记本并收到以下错误:
我注意到该属性名为 snappy.compress。不应该是带有下划线的 snappy_compress 吗?
python-3.x - 无法读取 parquet 文件,导致 Gzip 代码失败错误
我正在尝试使用 pyarrow 将镶木地板转换为 csv 文件。
上面的代码适用于从 github 下载的示例 parquet 文件。
但是当我尝试使用实际的大型镶木地板文件时,会出现以下错误。
我也尝试使用 fastparquet 和 pyspark 读取 parquet 文件。但我收到了类似的 GZip 错误。
我知道这是压缩或未压缩的镶木地板文件,与我下载的样本不同。
请建议任何代码或提供任何其他工具将此类镶木地板文件转换为 csv 文件将有很大帮助。谢谢。
编辑:与 parquet 中通常的字符串值相比,这些 parquet 文件似乎是二进制格式。有没有办法读取二进制镶木地板?
python-3.x - 为什么索引名称总是出现在用 pandas 创建的 parquet 文件中?
我正在尝试使用 pandas 数据框创建镶木地板,即使我删除了文件的索引,当我重新读取镶木地板文件时它仍然会出现。谁能帮我这个?我希望 index.name 设置为None。
python - Athena 如何从 S3 存储桶中读取镶木地板文件
我正在将一个 python 项目(s3 + Athena)从使用 csv 移植到镶木地板。
我可以制作parquet文件,可以通过Parquet View查看。
我可以将文件上传到 s3 存储桶。
我可以创建指向 s3 存储桶的 Athena 表。
但是,当我在 Athena Web GUI 上查询表时,它运行了 10 分钟(似乎永远不会停止)并且没有显示结果。
整个项目很复杂。我试图简化案例。
1.假设,我们有以下csv文件(test.csv)
2.然后,我使用以下python(2.7)代码将其转换为镶木地板文件(test.parquet)
3.通过 s3 Web GUI 将 test.parquet 上传到 s3 存储桶文件夹“abc_bucket/abc_folder”
4.通过Athena Web GUI创建下表
5.最后,在 Athena 上运行以下 SQL。SQL 运行 10 分钟,似乎永远存在。
我的问题是上面哪一步是错误的,所以我无法从 Athena 查询表。
非常感谢您提供任何帮助。