rdd.collect(). ToMap yerine RDD'de collectAsMap kullandığımda herhangi bir performans etkisi var mı?fark?
Anahtar değer rdd'im var ve HashMap'e dönüştürmek istediğim kadarıyla topladığım için() sürücüde çalıştığı için büyük veri kümelerinde etkin olmadığım için collectAsMap'i kullanabilir miyim, bunun yerine herhangi bir performans etkisi var mı?
Orijinal:
val QuoteHashMap=QuoteRDD.collect().toMap
val QuoteRDDData=QuoteHashMap.values.toSeq
val QuoteRDDSet=sc.parallelize(QuoteRDDData.map(x => x.toString.replace("(","").replace(")","")))
QuoteRDDSet.saveAsTextFile(Quotepath)
Değişimi:
val QuoteHashMap=QuoteRDD.collectAsMap()
val QuoteRDDData=QuoteHashMap.values.toSeq
val QuoteRDDSet=sc.parallelize(QuoteRDDData.map(x => x.toString.replace("(","").replace(")","")))
QuoteRDDSet.saveAsTextFile(Quotepath)
Önemli bir performans farkı yoktur. 'collectAsMap' basitçe 'RDD' toplar ve bir sürücüde bir 'HashMap' oluşturur. – zero323
En iyi uygulamayı kullanarak hashmap oluşturmanın bir yolu var mı? collectAsMap kullanmadan veya collect(). toMap? –
Yinelenen anahtarlar beklerseniz, ilk önce kopyaları kaldırarak sürücüye aktarılan veri miktarını azaltabilirsiniz, aksi halde aldığı kadar iyidir. – zero323