Как транслировать объекты между исполнителями в Spark scala?

Я уверен, что мы можем транслировать значения переменных, но я не уверен, как транслировать объект, созданный в драйвере, между исполнителями. Я создаю объект для стороннего класса Java в своей программе Scala. Я хочу поделиться одним и тем же экземпляром класса со всеми исполнителями вместо создания нескольких объектов.

Я обнаружил, что широковещательный метод можно использовать для широковещательной передачи значений переменных. Но я не знаю, можно ли это использовать для трансляции объектов. Пожалуйста, опубликуйте свои предложения


person DILIP KUMAR    schedule 24.02.2017    source источник


Ответы (1)


С помощью широковещательной рассылки вы также можете транслировать объекты. См. API для трансляции

broadcast[T](value: T)(implicit arg0: ClassTag[T]): Broadcast[T]
Broadcast a read-only variable to the cluster, returning a     org.apache.spark.broadcast.Broadcast object for reading it in distributed functions.

широковещательные переменные должны быть доступны только для чтения, поэтому вам следует беспокоиться о том, что это один и тот же экземпляр или другой.

person user373201    schedule 24.02.2017
comment
Да, мне было интересно, есть ли разница между значениями и объектами. Также я не думал, что в распределенной системе можно совместно использовать один и тот же экземпляр класса, так как у каждой JVM будет свой собственный экземпляр. - person NikoNyrh; 24.02.2017