web-dev-qa-db-fra.com

Comment re-partitionner pyspark dataframe?

data.rdd.getNumPartitions() # output 2456

Alors je fais
data.rdd.repartition(3000) Mais
data.rdd.getNumPartitions() # output est toujours 2456

Comment changer le nombre de partitions. Une approche peut être d’abord convertir DF en rdd, la repartitionner puis reconvertir rdd en DF. Mais cela prend beaucoup de temps… .. De plus en plus, le nombre de partitions rend les opérations plus distribuées et donc plus rapides? Merci. 

4
Neo

Vous pouvez vérifier le nombre de partitions:

data.rdd.partitions.size

Pour changer le nombre de partitions:

newDF = data.repartition(3000)

Vous pouvez vérifier le nombre de partitions:

newDF.rdd.partitions.size

Méfiez-vous des données mélangées lors du repartitionnement, cela coûte cher. Jetez un oeil à coalesce si nécessaire.

6
Michel Lemay
print df.rdd.getNumPartitions()
# 1


df.repartitions(5)
print df.rdd.getNumPartitions()
# 1


df = df.repartitions(5)
print df.rdd.getNumPartitions()
# 5

voir Spark: le guide définitif chapitre 5- Opérations sur les structures de base
ISBN-13: 978-1491912218
ISBN-10: 1491912219

1
Ali Payne