Как повторно использовать значение, полученное в одном объекте Scala, в другой? - PullRequest
0 голосов
/ 05 марта 2019

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

Например, если у меня есть объект BB.scala, и я создаю в нем RDD, что является лучшимспособ сохранить этот RDD и использовать его снова в другом объекте, например.ABC?

object BB{
    ....
    val myRDD = ....
 }

object ABC{
    myRDD.groupByKey() //How to use myRDD here?
 }

Обратите внимание, что я хочу, чтобы объект BB запускался только один раз, а объект ABC - много раз.Кроме того, сейчас мое приложение не имеет основного, и я запускаю объекты, используя extends App.Я новичок в Scala (и программировании), прошу прощения, если это что-то очень простое.

Спасибо.

1 Ответ

0 голосов
/ 05 марта 2019

Так как вы объявили BB как object (что является синглтоном ), вы можете очень легко получить к нему доступ следующим образом:

object BB{
    ....
    val myRDD = ....
 }

object ABC{
    val bbRDD = BB.myRDD.groupByKey() 
 }

Я не совсем уверенчто вы хотите сказать, когда говорите, что хотите, чтобы

объект BB запускался только один раз

, но, возможно, вам следует рассмотреть возможность использования class или case class вместо object для некоторого вашего кода, чтобы вы могли создавать его экземпляры, например:

class BB {
    ....
    val myRDD = ....
 }

object ABC {
    val bb = new BB()
    val bbRRD = bb.myRDD.groupByKey()
 }
...