Bir dosyayı Spark kullanarak HDFS'ye yazarken, bu bölümleme kullanılmadığında oldukça hızlıdır. Bunun yerine, dosyayı yazmak için bölümleme kullandığımda, yazma gecikmesi faktörü ~ 24 artar.Dosya yazmak için kıvılcım ayırma çok yavaş
Aynı dosya için, bölümsüz yazma yaklaşık 600 ms sürer. Kimliği ile bölümle yazma (dosyada 1.000 kimlik olduğu için tam olarak 1.000 bölüm oluşturur) yaklaşık 14 saniye sürer.
Bazılarınız bölümlenmiş bir dosya yazmanın çok uzun sürdüğü deneyime sahip misiniz? Bunun temel nedeni nedir, belki de Spark'un her bölüm için 1.000 klasör ve dosya oluşturması gerekiyor mu? Bunun nasıl hızlandırılabileceğine dair bir fikriniz var mı?
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)
Kullandığınız kodu ekleyebilir misiniz? – zero323