Comme indiqué dans le documents , set_index
trie vos données en fonction du nouvel index, de sorte que les divisions le long de cet index divisent les données en partitions logiques. Le tri est l'opération qui nécessite le plus de temps, mais qui rendra les opérations travaillant sur cet index beaucoup plus rapides une fois qu'elles auront été effectuées. head()
sur le fichier brut récupère le premier bloc de données sur le disque sans tenir compte de l'ordre.
Vous pouvez définir l'index sans cet ordre, soit avec la commande index=
mot-clé à read_parquet
(peut-être les données étaient-elles déjà ordonnées par nature ?) ou avec .map_partitions(lambda df: df.set_index(..))
Mais cela soulève une question évidente : pourquoi se donner la peine de le faire, que cherche-t-on à obtenir ? Si les données étaient déjà triées, vous auriez également pu utiliser set_index(.., sorted=True)
et peut-être même le mot-clé des divisions, si vous disposez de l'information - cela ne nécessiterait pas de tri et serait donc plus rapide.