Данное значение не присваивается в операторе if в Spark Scala? - PullRequest
0 голосов
/ 01 ноября 2018

Я назначил следующие значения. Проблема заключается в том, что значения end1 и end2 не назначаются при использовании внутри оператора if. Я использовал строковую интерполяцию, но все еще не назначен

Мой пример кода такой, три условия, один как ниже

if(tp <="1.0")
 {   
   end1="nd"
   end2="ms"
 }


breakable {

for (row <- df.rdd.collect) {
var ts=row.mkString(",").split(",")(1)
var nd=row.mkString(",").split(",")(2)
var tp=row.mkString(",").split(",")(3)
var ms=row.mkString(",").split(",")(4)

    println(end1)  // this prints nd
    println(end2) // this prints ms

  // but in if statement end1 and end2 values doesn't assign with nd and ms 
   - neither it shows any error nor assigning the values

 if( end1 <="0.5" || end2 <="0.5")
   endtime=ts
   println("end timestamp is" + endtime)
   break()
   }
 }

Я хочу, чтобы приведенный выше оператор if выполнялся как

if( nd <="0.5" || ms <="0.5")  
// end1 and end2 changes as per the condition

но здесь значение не присваивается и идет внутри оператора if.

1 Ответ

0 голосов
/ 02 ноября 2018

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

...