我在scala和sparksql中工作,我想调用接受多个参数的udf。我不知道我的电话怎么了
自定义项是
private def parseJsonUdf: UserDefinedFunction = udf(parseJson _)
def parseJson (json: org.json.JSONObject, arg1: String, arg2: String = ""): String = {
***
}
我这样称呼它,这里的字段是seq[string],数据列包含json字符串
for(field <- fields){
df.withColumn(field, parseJsonUdf(col("data"), lit(field)))
}
可能我不知道如何将字符串作为jsonobject传递到udf或其他内容中。我得到下面的运行时错误
java.lang.ClassCastException:********$$parseJsonUdf$1 cannot be cast to scala.Function2
at org.apache.spark.sql.catalyst.expressions.ScalaUDF.<init>(ScalaUDF.scala:107)
at org.apache.spark.sql.expressions.UserDefinedFunction.apply(UserDefinedFunction.scala:71)
我该怎么做?
1条答案
按热度按时间f4t66c6m1#
试试下面(天真的方法)-
那就打电话-