Spark Sql解析器在UDF调用中追加附加参数

Spark Sql解析器在UDF调用中追加附加参数,sql,scala,apache-spark,pyspark,apache-spark-sql,Sql,Scala,Apache Spark,Pyspark,Apache Spark Sql,我使用SQL语句作为用户的输入,比如“CASE WHEN CALL_UDF(“12G”,2)

我使用SQL语句作为用户的输入,比如“
CASE WHEN CALL_UDF(“12G”,2)<0然后4 ELSE 5 END

我想在这个字符串中添加一个附加参数。 预期结果:“
调用_UDF时的情况(“12G”,2,附加_参数)<0,然后4,否则5结束

为了实现这个目标,我尝试使用
SparkSqlParser
,但在实现这个替换过程中遇到了问题。可能有人实施了类似的解决方案。谢谢

我已经尝试过的:

val expression = parser.parseExpression("CASE WHEN CALL_UDF("12G", 2) < 0 THEN 3 ELSE 4 END")
  .transformDown {
    case expression if expression.isInstanceOf[UnresolvedFunction] && expression.asInstanceOf[UnresolvedFunction].name.funcName == "CALL_UDF" =>
      UnresolvedFunction(FunctionIdentifier("CALL_UDF"), expression.children.toList ++ Seq(parser.parseExpression("4")), false)
  }
val expression=parser.parseExpression(“调用自定义项时的大小写(“12G”,2)<0然后3,否则4结束”)
.变形金刚{
如果expression.isInstanceOf[UnsolvedFunction]&&expression.asInstanceOf[UnsolvedFunction].name.funcName==“CALL\u UDF”=>
unsolvedfunction(FunctionIdentifier(“CALL_UDF”)、expression.children.toList++Seq(parser.parseExpression(“4”)、false)
}