Разница между rdd.collect (). toMap для rdd.collectAsMap ()?

Есть ли какое-либо влияние на производительность, когда я использую collectAsMap на моем RDD вместо rdd.collect (). toMap?

У меня есть значение ключа rdd, и я хочу преобразовать его в HashMap, насколько я знаю, что collect () неэффективен для больших наборов данных, поскольку он работает на драйвере. Могу ли я использовать collectAsMap вместо этого, есть ли какое-либо влияние на производительность?

Оригинал:

 val QuoteHashMap=QuoteRDD.collect().toMap 
val QuoteRDDData=QuoteHashMap.values.toSeq 
val QuoteRDDSet=sc.parallelize(QuoteRDDData.map(x => x.toString.replace("(","").replace(")",""))) 
QuoteRDDSet.saveAsTextFile(Quotepath) 

Изменить:

val QuoteHashMap=QuoteRDD.collectAsMap() 
val QuoteRDDData=QuoteHashMap.values.toSeq 
val QuoteRDDSet=sc.parallelize(QuoteRDDData.map(x => x.toString.replace("(","").replace(")",""))) 
QuoteRDDSet.saveAsTextFile(Quotepath)
7 голосов | спросил sri hari kali charan Tummala 20 +03002015-10-20T12:39:57+03:00312015bEurope/MoscowTue, 20 Oct 2015 12:39:57 +0300 2015, 12:39:57

2 ответа


0

Реализация collectAsMap следующая

 def collectAsMap(): Map[K, V] = self.withScope {
    val data = self.collect()
    val map = new mutable.HashMap[K, V]
    map.sizeHint(data.length)
    data.foreach { pair => map.put(pair._1, pair._2) }
    map
  }

Таким образом, между collect и collectAsMap, потому что collectAsMap вызывает изнутри также collect.

ответил Till Rohrmann 20 +03002015-10-20T12:55:52+03:00312015bEurope/MoscowTue, 20 Oct 2015 12:55:52 +0300 2015, 12:55:52
0

Без разницы. Избегайте использования collect () настолько, насколько это возможно, поскольку это разрушает концепцию параллелизма и собирает данные в драйвере.

ответил Meet Vadera 25 52016vEurope/Moscow11bEurope/MoscowFri, 25 Nov 2016 16:19:18 +0300 2016, 16:19:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132