Lors de l'écriture d'un fichier sur HDFS à l'aide de Spark, cette opération est assez rapide lorsque vous n'utilisez pas le partitionnement. Au lieu de cela, lorsque j'utilise le partitionnement pour écrire le fichier, le délai d'écriture augmente de facteur ~ 24.Le partitionnement Spark pour l'écriture de fichier est très lent
Pour le même fichier, écrire sans partition prend environ 600ms. Ecrire avec partition par Id (va générer exactement 1.000 partitions, comme il y a 1.000 ids dans le fichier) ça prend environ 14 secondes.
Certains d'entre vous ont-ils la même expérience que l'écriture d'un fichier partitionné prend beaucoup de temps? Quelle est la cause de cette situation, peut-être que Spark doit créer 1.000 dossiers et fichiers pour chaque partition? Savez-vous comment cela peut être accéléré?
val myRdd = streamedRdd.map { case ((id, metric, time), value) => Record(id, metric, getEpoch(time), time, value) }
val df = myRdd.toDF
df.write.mode(SaveMode.Append)
.partitionBy("id")
.parquet(path)
Pourriez-vous inclure le code que vous utilisez? – zero323