问题标签 [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.

0 投票
1 回答
586 浏览

python - 使用 fastparquet 在子文件上划分 parquet 文件

我需要将 csv 文件转换为 Parquet 格式。但是这个 csv 文件非常大(超过 65 000 行和 1 000 列),这就是为什么我需要将 parquet 文件分成几个子文件,每个子文件 5 000 行和 200 列)。我已经尝试过 partition_on 和 row_group_offsets,但它不起作用。

我的代码:

0 投票
1 回答
5016 浏览

python - 将 ParquetFile 转换为 pandas Dataframe,其中包含一个在 python 中包含一组字符串的列

我有一个镶木地板文件,它有一个带有几列的简单文件架构。我使用下面的代码将它读入 python

这运行良好,但是当我使用下面的代码将其转换为 pandas 时,出现以下错误:

错误是:

为了找到错误的来源,我分别df=pf.to_pandas(columns=col_to_retrieve)添加了列,并注意到错误是从具有字符串列表(例如(“a”、“b”、“c”))作为每个单元格的值的列之一引发的列。

你知道如何将它转换为 Pandas,知道有类型为 set(string) 的列吗?

0 投票
1 回答
1996 浏览

python - How to read a single parquet file from s3 into a dask dataframe?

I'm trying to read a single parquet file with snappy compression from s3 into a Dask Dataframe. There is no metadata directory, since this file was written using Spark 2.1

It does not work locally with fastparquet

I get these exceptions:

It works with a local parquet file and pyarrow:

Finally, trying with S3 and a pyarrow fails too:

With the following exception:

In this issue the use of fastparquet.writer.merge is suggested, since it supposedly writes the metadata directory, but it fails for me with the same error as before

0 投票
1 回答
2001 浏览

python - 如何将包含一列数组的 Dask 数据框写入镶木地板文件

我有一个 Dask 数据框,其中一列包含一个 numpy 浮点数组:

如果我尝试将其写成镶木地板,则会出现错误:

我认为这是因为“vec”列的类型为“object”,因此 parquet 序列化程序尝试将其写为字符串。有什么方法可以告诉 Dask DataFrame 或序列化器该列是浮点数组吗?

0 投票
1 回答
622 浏览

python - 尝试打印 Python 3 中使用查询创建的 Pandas DataFrame 时出现 UnicodeEncodeError

我已经搜索和搜索。我无法完全找到像我这样的问题。我确实尝试过。

我已将 Parquet 数据读入 Pandas 数据框,并使用 .query 语句过滤数据。

当它打印时,我得到 UnicodeEncodeError: 'charmap' codec can't encode error 'u\0310' in position 4174: character maps to undefined'。这是在Geany。如果我从管理员控制台打印,我会得到不同的字符和位置。我正在运行 Windows 7。数据确实包含拉丁语、德语等字符。

当我使用.query的其他标准将数据打印到屏幕上时,我实际上看到了一些特殊字符,所以我猜它只是某些字符?我查找了“u\0310”,这是某种拉丁语 i。但我可以打印其他拉丁字符。

我尝试了一些建议来尝试通过指定编码来解决此问题,但它们似乎不起作用,因为这是一个数据框。我遇到的其他问题是关于尝试打开 CSV 文件时发生的此错误。不是我在这里所经历的。

邮政编码数据只是用来学习 Pandas 的东西。将来,这个脚本会处理什么样的数据,还不得而知。我真的在寻找解决这个问题的方法,无论数据将具有什么样的字符,它都可以防止它发生。简单地删除 LOCATION 字段,这是所有这些特殊字符用于此特定数据的位置,是不可行的。

有没有人见过这个?提前致谢。

0 投票
0 回答
889 浏览

dask - 从不同目录中的镶木地板文件(HDFS)创建 dask 数据帧的最佳方法

我正在尝试从存储不同 HDFS 目录的大量镶木地板文件中创建 dask 数据框。我尝试了两种方法,但它们似乎都需要很长时间。

方法 1:使用全局路径调用 api read_parquet。例如:

方法 2:从每个目录创建 dask 数据框,然后在所有数据框列表上调用 dd.concat。对于每个目录:

然后连接:

在这两种方法中,创建数据框都需要很长时间。

请建议阅读这些镶木地板文件的最佳方法。

0 投票
1 回答
397 浏览

python - 从 pandas groupby 获取数据帧以写入镶木地板

我有一些带有以下列的csv数据:

country, region, year, month, price, volume

我需要将其转换为以下内容:

country, region, datapoints

其中数据点由以下任一组成: (year, month, price, volume) 元组数组,或(更好)

{ (year, month) : {price, volume} }

实际上,我正在尝试将数据重塑为时间序列,然后可以将其存储为镶木地板。对于它的价值,我正在使用 fastparquet 将数据帧写入 parquet 文件。

这可能吗?

0 投票
2 回答
7235 浏览

pandas - pandas to_parquet 在大型数据集上失败

我正在尝试使用 pandas to_parquet 保存一个非常大的数据集,并且在超过某个限制时似乎会失败,无论是使用“pyarrow”还是“fastparquet”。我使用以下代码重现了我遇到的错误,并且很高兴听到有关如何克服该问题的想法:

使用 Pyarrow:


使用快速镶木地板:

0 投票
3 回答
22063 浏览

python-3.x - fastparquet 不提供解压“SNAPPY”

我正在尝试使用 fastparquet 打开文件,但出现错误:

我安装了以下内容并重新启动了我的解释器:

一切顺利下载。我不知道我是否需要 snappy 或 python-snappy,所以我得到了一个没有修复并得到另一个,仍然没有成功。下载 snappy 时,我发现的所有相关问题都已修复,但我仍然遇到此错误,因为我有两个 snappy!任何帮助,将不胜感激。

0 投票
3 回答
2944 浏览

dask - 带有pyarrow内存的dask read_parquet爆炸

我正在使用 dask 来编写和阅读镶木地板。我正在使用 fastparquet 引擎写作并使用 pyarrow 引擎阅读。我的工人有 1 GB 的内存。使用 fastparquet 内存使用情况很好,但是当我切换到 pyarrow 时,它就会爆炸并导致工作人员重新启动。我在下面有一个可重现的示例,它在 1gb 内存限制的工作人员上使用 pyarrow 失败。实际上,我的数据集比这大得多。使用 pyarrow 的唯一原因是,与 fastparquet 相比,它在扫描时提高了我的速度(大约 7x-8x)

黄昏:0.17.1

pyarrow:0.9.0.post1

快速镶木地板:0.1.3

编辑:我的原始设置运行 spark 作业,使用 fastparquet 将数据并行写入分区。因此元数据文件是在最里面的分区而不是父目录中创建的。因此使用 glob 路径而不是父目录(fastparquet 读取父目录时要快得多,而使用 glob 路径扫描时 pyarrow 获胜)