问题标签 [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 - 使用 fastparquet 在子文件上划分 parquet 文件
我需要将 csv 文件转换为 Parquet 格式。但是这个 csv 文件非常大(超过 65 000 行和 1 000 列),这就是为什么我需要将 parquet 文件分成几个子文件,每个子文件 5 000 行和 200 列)。我已经尝试过 partition_on 和 row_group_offsets,但它不起作用。
我的代码:
python - 将 ParquetFile 转换为 pandas Dataframe,其中包含一个在 python 中包含一组字符串的列
我有一个镶木地板文件,它有一个带有几列的简单文件架构。我使用下面的代码将它读入 python
这运行良好,但是当我使用下面的代码将其转换为 pandas 时,出现以下错误:
错误是:
为了找到错误的来源,我分别df=pf.to_pandas(columns=col_to_retrieve)
添加了列,并注意到错误是从具有字符串列表(例如(“a”、“b”、“c”))作为每个单元格的值的列之一引发的列。
你知道如何将它转换为 Pandas,知道有类型为 set(string) 的列吗?
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
python - 如何将包含一列数组的 Dask 数据框写入镶木地板文件
我有一个 Dask 数据框,其中一列包含一个 numpy 浮点数组:
如果我尝试将其写成镶木地板,则会出现错误:
我认为这是因为“vec”列的类型为“object”,因此 parquet 序列化程序尝试将其写为字符串。有什么方法可以告诉 Dask DataFrame 或序列化器该列是浮点数组吗?
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 字段,这是所有这些特殊字符用于此特定数据的位置,是不可行的。
有没有人见过这个?提前致谢。
dask - 从不同目录中的镶木地板文件(HDFS)创建 dask 数据帧的最佳方法
我正在尝试从存储不同 HDFS 目录的大量镶木地板文件中创建 dask 数据框。我尝试了两种方法,但它们似乎都需要很长时间。
方法 1:使用全局路径调用 api read_parquet。例如:
方法 2:从每个目录创建 dask 数据框,然后在所有数据框列表上调用 dd.concat。对于每个目录:
然后连接:
在这两种方法中,创建数据框都需要很长时间。
请建议阅读这些镶木地板文件的最佳方法。
python - 从 pandas groupby 获取数据帧以写入镶木地板
我有一些带有以下列的csv数据:
country, region, year, month, price, volume
我需要将其转换为以下内容:
country, region, datapoints
其中数据点由以下任一组成:
(year, month, price, volume)
元组数组,或(更好)
{
(year, month) : {price, volume}
}
实际上,我正在尝试将数据重塑为时间序列,然后可以将其存储为镶木地板。对于它的价值,我正在使用 fastparquet 将数据帧写入 parquet 文件。
这可能吗?
pandas - pandas to_parquet 在大型数据集上失败
我正在尝试使用 pandas to_parquet 保存一个非常大的数据集,并且在超过某个限制时似乎会失败,无论是使用“pyarrow”还是“fastparquet”。我使用以下代码重现了我遇到的错误,并且很高兴听到有关如何克服该问题的想法:
使用 Pyarrow:
使用快速镶木地板:
python-3.x - fastparquet 不提供解压“SNAPPY”
我正在尝试使用 fastparquet 打开文件,但出现错误:
我安装了以下内容并重新启动了我的解释器:
一切顺利下载。我不知道我是否需要 snappy 或 python-snappy,所以我得到了一个没有修复并得到另一个,仍然没有成功。下载 snappy 时,我发现的所有相关问题都已修复,但我仍然遇到此错误,因为我有两个 snappy!任何帮助,将不胜感激。
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 获胜)