我正在研究镶木地板文件,以了解它们是否适合我的目的。为此,我从一个csv文件加载了一个数据集并将其另存为一个镶木地板数据集:
import pandas as pd # version 0.25
import pyarrow as pa # version 0.15
import pyarrow.parquet as pq
df = pd.read_csv('my.csv')
df_table = pa.Table.from_pandas(df)
pq.write_to_dataset(df_table,root_path='my.parquet')
这很好并且非常快(〜1分钟)。但是,当我尝试这样编写分区的镶木地板数据集时,
pq.write_to_dataset(df_table,root_path='my.parquet',partition_cols=['id'])
需要半个多小时。这似乎很奇怪。我试图将id
列设置为索引,但是并没有太大变化。我想念什么吗?
文件的某些背景:〜500万行,9列。 id
列包含约330,000个不同的值。将数据集划分成这么小的片段只是个坏主意吗?
我刚接触Python(我使用3.6.4版),所以不确定是否提供了所有相关信息。如果缺少某些东西,请发表评论。
编辑: 我发现,以我为例,更少,更大的块更快。这导致最佳块大小的问题。在哪里可以找到有关此信息?