Sparkを使用してHDFSにファイルを書き込むとき、パーティショニングを使用しないときは非常に高速です。その代わりに、ファイルを書き込むためにパーティショニングを使用すると、書き込み遅延が約24倍に増加します。ファイル書き込みのためのスパークパーティショニングが非常に遅い
同じファイルの場合、パーティションなしでの書き込みには約600msかかります。 Idでパーティションを作成すると(ファイルに1.000のIDがあるため、正確に1.000のパーティションが生成されます)、約14秒かかります。
パーティション化されたファイルの作成に非常に時間がかかる人もいますか?これの根本的な原因は何か、おそらくSparkは各パーティションに1.000のフォルダとファイルを作成する必要がありますか? これがどのようにスピードアップできるか考えていますか?
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)
使用するコードを含めることができますか? – zero323