当前位置: 首页 > 知识库问答 >
问题:

如何将Parquet文件读入Pandas DataFrame?

令狐唯
2023-03-14

如何在不设置集群计算基础设施(如Hadoop或Spark)的情况下将大小适中的Parket数据集读取到内存中的Pandas DataFrame中?这只是我想在笔记本电脑上使用简单的Python脚本在内存中读取的适度数据。数据不驻留在HDFS上。它要么在本地文件系统上,要么可能在S3中。我不想启动和配置其他服务,如Hadoop、Hive或Spark。

我原以为Blaze/Odo会使这成为可能:Odo文档提到了Parquet,但这些例子似乎都是通过外部Hive运行时实现的。

共有3个答案

高海阳
2023-03-14

除了熊猫,Apache pyarrow还提供了将拼花地板转换为数据框架的方法

代码很简单,只需键入:

import pyarrow.parquet as pq

df = pq.read_table(source=your_file_path).to_pandas()

有关详细信息,请参阅Apache pyrow读取和写入单个文件中的文档

万德海
2023-03-14

更新:自从我回答这个问题以来,为了更好地读写拼花地板,在Apache Arrow上做了很多工作。另外:http://wesmckinney.com/blog/python-parquet-multithreading/

有一个python拼花阅读器工作得相对较好:https://github.com/jcrobak/parquet-python

它将创建python对象,然后您必须将它们移动到Pandas数据帧,因此该过程将比< code>pd.read_csv慢。

穆飞龙
2023-03-14

熊猫0.21为拼花引入了新功能:

import pandas as pd
pd.read_parquet('example_pa.parquet', engine='pyarrow')

import pandas as pd
pd.read_parquet('example_fp.parquet', engine='fastparquet')

上面的链接说明:

这些引擎非常相似,应该读/写几乎相同的拼花格式文件。这些库因具有不同的底层依赖关系而不同(fastparquet使用numba,而pyarrow使用c-库)。

 类似资料:
  • 问题内容: 如何在不设置集群计算基础架构(例如Hadoop或Spark)的情况下,将大小适中的Parquet数据集读取到内存中的Pandas DataFrame中?我只想在笔记本电脑上使用简单的Python脚本在内存中读取这些数据,但是数量很少。数据不驻留在HDFS上。它位于本地文件系统上,也可能位于S3中。我不想启动并配置其他服务,例如Hadoop,Hive或Spark。 我以为Blaze /

  • Parquet是一种柱状(columnar)格式,可以被许多其它的数据处理系统支持。Spark SQL提供支持读和写Parquet文件的功能,这些文件可以自动地保留原始数据的模式。 加载数据 // sqlContext from the previous example is used in this example. // createSchemaRDD is used to implicitl

  • 如果这一行文本没有以方括号开头,我想把这一行连接到上面的一行。我可以读它在正常使用这个代码。我试着用String.StartsWith但是我搞不懂。 我正在寻找对此方法的更改,以使它以我想要的格式读取它,或者可能是一个将作用于我的并对此问题排序的方法。谢谢

  • 我想用GSON库用java读这个JSON文件。我刚开始使用gson Libray。有人请纠正我的代码我的JSON文件如下所示: 这是我为读取这个文件而编写的java代码: 但我得到以下异常:

  • 我有一个这样的文本文件: 如何将其读入地图或Erlang中的任何其他数据结构(以进一步迭代每个键及其各自的值)并最终打印地图?

  • 问题内容: 我已将文件读入字符串。该文件包含各种名称,每行一个名称。现在的问题是,我希望将这些名称放在String数组中。 为此,我编写了以下代码: 但是我没有得到预期的结果,分割字符串后获得的数组长度为1。这意味着“ fileString”不具有“ \ n”字符,但是文件具有此“ \ n”字符。 那么如何解决这个问题呢? 问题答案: 问题不在于如何分割字符串。那一点是正确的。 您必须查看如何将文