GenericUDF улья выполнить дважды на Spark
Здравствуйте, я столкнулся с некоторой проблемой с созданием genericUDF улья и зарегистрироваться как временная функция, но когда я вызываю его, его вызов дважды, см. Код, приведенный ниже
я создаю genericUDF со следующим кодом
class GenUDF extends GenericUDF{
var queryOI: StringObjectInspector = null
var argumentsOI: Array[ObjectInspector] = null
override def initialize (arguments: Array[ObjectInspector]):ObjectInspector = {
/*if (arguments.length == 0) {
throw new UDFArgumentLengthException("At least one argument must be specified")
}
if (!(arguments(0).isInstanceOf[StringObjectInspector])) {
throw new UDFArgumentException("First argument must be a string")
}
queryOI = arguments(0).asInstanceOf[StringObjectInspector]
argumentsOI = arguments*/
println("inside initializeweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee")
return PrimitiveObjectInspectorFactory.javaStringObjectInspector
}
override def evaluate (arguments: Array[GenericUDF.DeferredObject]):Object = {
println("inside generic UDF::::::::::::::::::::::((((((((((((((((((((((((FDDDDDDDDDDDDD:")
4.toString
}
def getDisplayString(children: Array[String]): String = {
println("inside displayssssssssssssssssssssssssssssssss")
return "udft"
}
}
И когда я регистрирую это со следующим утверждением
hiveContext.sql("CREATE TEMPORARY FUNCTION udft AS 'functions.GenUDF'")
и когда я вызываю эту функцию с помощью следующей команды
select udft()
он выполнит оператор print в теле оценки дважды.