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确实是一个列表而不是一个元组)
我有一个列表,我想解析它的元素和子元素并将它们作为数据帧查询的变量 但是我得到一个错误有人可以帮助这是我的代码
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确实是一个列表而不是一个元组)