Logback оставляя файлы .temp с несколькими экземплярами в Jboss с помощью Spring Boot

bro в двух случаях совершенно иная. В первом случае это поле для экземпляра одноэлементного класса (TryBroadcast). Во втором он является локальной переменной.

I локальная переменная захватывается, сериализуется и отправляется исполнителям. В первом случае ссылка на поле, поэтому синглтон будет захвачен и отправлен. Я не знаю, как построен синглтон Scala и как он захватывается. По-видимому, в этом случае он заканчивается неинициализированным при доступе к исполнителю.

Вы можете сделать bro локальную переменную следующим образом:

object TryBroadcast extends App {
  val conf = new SparkConf().setAppName("o_o")
  val sc = new SparkContext(conf)
  val sample = sc.parallelize(1 to 1024)
  val broSample = {
    val bro = sc.broadcast(6666)
    sample.map(x => x.toString + bro.value)
  }
  broSample.collect().foreach(println)
}
1
задан Rishi 16 January 2019 в 05:22
поделиться