我有这个自定义项
val IPSet1 = IPSet(Seq("212.222.131.201", "212.222.131.200", "192.0.0.0/16"))
//function and function registration to check if the IP address is in the IP Set
val IPSetContains = udf((IPAddr: String, IPSetObj: IPSet) => IPSetObj.contains(IPv4(IPAddr)))
spark.udf.register("IPSetContains", IPSetContains)
//query to test the function
spark.sql(
"SELECT * " +
"FROM IPv4 " +
s"WHERE IPSetContains(IPAddress, $IPSet1)"
).show()
它给出了一个错误的说法
线程“main”org.apache.spark.sql.catalyst.parser.parseexception中出现异常:外部输入“@”应为{'),','}(第1行,位置73)
将内置数据类型传递给udf似乎可以正常工作,但是使用自定义类作为参数会由于某些原因而产生错误。
暂无答案!
目前还没有任何答案,快来回答吧!