如何在不设置集群计算基础设施(如Hadoop或Spark)的情况下将大小适中的Parket数据集读取到内存中的Pandas DataFrame中?这只是我想在笔记本电脑上使用简单的Python脚本在内存中读取的适度数据。数据不驻留在HDFS上。它要么在本地文件系统上,要么可能在S3中。我不想启动和配置其他服务,如Hadoop、Hive或Spark。
我原以为Blaze/Odo会使这成为可能:Odo文档提到了Parquet,但这些例子似乎都是通过外部Hive运行时实现的。
除了熊猫,Apache pyarrow还提供了将拼花地板转换为数据框架的方法
代码很简单,只需键入:
import pyarrow.parquet as pq
df = pq.read_table(source=your_file_path).to_pandas()
有关详细信息,请参阅Apache pyrow读取和写入单个文件中的文档
更新:自从我回答这个问题以来,为了更好地读写拼花地板,在Apache Arrow上做了很多工作。另外:http://wesmckinney.com/blog/python-parquet-multithreading/
有一个python拼花阅读器工作得相对较好:https://github.com/jcrobak/parquet-python
它将创建python对象,然后您必须将它们移动到Pandas数据帧,因此该过程将比< code>pd.read_csv慢。
熊猫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)的情况下将大小适中的Parket数据集读取到内存中的Pandas DataFrame中?这只是我想在笔记本电脑上使用简单的Python脚本在内存中读取的适度数据。数据不驻留在HDFS上。它要么在本地文件系统上,要么可能在S3中。我不想启动和配置其他服务,如Hadoop、Hive或Spark。 我原以为Blaze/Odo会使这成为可能:Odo
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”字符。 那么如何解决这个问题呢? 问题答案: 问题不在于如何分割字符串。那一点是正确的。 您必须查看如何将文