Я передаю широковещательную переменную всем своим исполнителям, используя следующий код. Код вроде работает, но я не знаю, достаточно ли хорош мой подход. Просто хочу посмотреть, есть ли у кого-нибудь лучшие предложения. Большое спасибо!
val myRddMap = sc.textFile("input.txt").map(t => myParser.parse(t))
val myHashMapBroadcastVar = sparkContext.broadcast(myRddMap.collect().toMap)
где myRddMap
имеет тип org.apache.spark.rdd.RDD[(String, (String, String))]
Затем у меня есть служебная функция, которую я передаю в RDD и переменных, таких как:
val myOutput = myUtiltityFunction.process(myRDD1, myHashMapBroadcastVar)
Так является ли приведенный выше код хорошим способом обработки широковещательных переменных? Или есть лучший подход? Спасибо!
collect
их), то нет необходимости загружать их в RDD. Вы можете загрузить и проанализировать его без Spark и избежать некоторых накладных расходов. - person Daniel Darabos   schedule 24.06.2015