Scala If 和 For 循环问题

Scala If and For Loops issue

我有一个列表,我想解析它的元素和子元素并将它们作为数据帧查询的变量 但是我得到一个错误有人可以帮助这是我的代码

val ListParser = ("age,15,20","revenue,1,2")
val vars = "category in (1,2,4)"
val resultQuery : Dataset[Row] =
      if(ListParser.size == 0){

         responses.filter(vars)

      }else if(ListParser.size == 1){

        responses.filter(vars +" AND " + responses(ListParser(0)).between(ListParser(1).toInt, ListParser(2).toInt))

      }else if(ListParser.size >= 2){

        responses.filter(vars + " AND " + {for(a <- ListParser){
          val myInnerList : List[String] = a.split(",").map(_.trim).toList
          responses(myInnerList(0)).between(myInnerList(1).toInt,myInnerList(2).toInt)
        }})


      }else{

        responses.filter(vars)

      }

我还有一个问题,我只希望 response.filter() 的值在 resultQuery val

您似乎将 SQL 语法与 spark 对象语法混合使用

尝试(listParser.map( s => {val l =s.split(","); s"""${l(0)} between (${l(1)},${l(2)})"""}) :+ vars).mkString(" AND ")(假设listParser确实是一个列表而不是一个元组)