Scala Spark-在一次尝试呼叫后获得一个元素并获得成功

Scala Spark-在一次尝试呼叫后获得一个元素并获得成功,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我理解上面带有contains的代码为isGroupval分配了一个布尔值。但是,我希望contains语句成功时使用pOrdernum或int,失败时使用0 int,因此在最后使用.getorElse(0)语句 我怎样才能做到这一点?我只需要检查是否成功的值或第二个元素(返回true)将值pOrdernum(一个int)分配给isgroup val,我假设您希望执行以下操作: val isGroup = Try(groupPower(Doc.productType.id), .

我理解上面带有
contains
的代码为
isGroup
val分配了一个布尔值。但是,我希望
contains
语句成功时使用pOrdernum或int,失败时使用0 int,因此在最后使用
.getorElse(0)
语句


我怎样才能做到这一点?我只需要检查是否成功的值或第二个元素(返回true)将值pOrdernum(一个int)分配给isgroup val

,我假设您希望执行以下操作:

val isGroup =
  Try(groupPower(Doc.productType.id),
      .contains(Doc.powerGroup.id,doc2.Doc.pOrdernum)).getorElse(0)

contains的结果(即布尔值)现在被丢弃。如果没有异常发生,
doc2.Doc.pOrdernum
返回

请使用groupPower函数和案例类进行更新。我不明白,groupPower是否引发异常?你真的需要在这里试一试吗?
   val result:Int =
      Try{
        groupPower(Doc.productType.id).contains(Doc.powerGroup.id,doc2.Doc.pOrdernum)
        doc2.Doc.pOrdernum
      }.getorElse(0)