Await.result (observableDoc.toFuture, Duration.Inf) дает нулевое значение в искровом кластере - PullRequest
0 голосов
/ 12 апреля 2019

Await.result (observableDoc.toFuture, Duration.Inf) дает нулевое значение в искровом кластере. Он отлично работает на моей локальной машине

Я использую API драйвера scala. Я пытался изменить время Duration, но не работал в кластере искр.

val mongoClient = MongoClient("uriString")
val db = mongoClient.getDatabase("databasename")
val collection = db.getCollection("collectionName")
var observableDoc = collection.find(equal("my_id", "12345")).first

observableDoc.subscribe(new Observer[T] {
  println(funcname + " : Inside observableStatus subscribe start")
  logger.info(funcname + " : Inside observableStatus subscribe start")

  override def onNext(result: T): Unit = {
    println(funcname + " onNext")
    logger.info(funcname + " onNext")
  }

  override def onError(e: Throwable): Unit = {
    println(funcname + " Failed")
    logger.info(funcname + " Failed")
  }

  override def onComplete(): Unit = {
    println(funcname + " Complete")
    logger.info(funcname + " Complete")
  }

  println(funcname + " : Inside observableStatus subscribe end")
  logger.info(funcname + " : Inside observableStatus subscribe end")
})

val awaitedR = Await.result(observableDoc.toFuture, Duration.Inf)

Приведенный выше код отлично работает на моей локальной машине и дает ожидаемый результат, но в спарк-кластере awaitedR показывает ноль.

...