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 в теле оценки дважды.

0 ответов

Другие вопросы по тегам