Repository: spark
Updated Branches:
  refs/heads/master d31517a3c -> 58a6077e5


[SPARK-4143] [SQL] Move inner class DeferredObjectAdapter to top level

The class DeferredObjectAdapter is the inner class of HiveGenericUdf, which may 
cause some overhead in closure ser/de-ser. Move it to top level.

Author: Cheng Hao <hao.ch...@intel.com>

Closes #3007 from chenghao-intel/move_deferred and squashes the following 
commits:

3a139b1 [Cheng Hao] Move inner class DeferredObjectAdapter to top level


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/58a6077e
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/58a6077e
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/58a6077e

Branch: refs/heads/master
Commit: 58a6077e56f0f8f75fdd57d3aaad7485aeb07615
Parents: d31517a
Author: Cheng Hao <hao.ch...@intel.com>
Authored: Thu Oct 30 23:59:46 2014 -0700
Committer: Michael Armbrust <mich...@databricks.com>
Committed: Thu Oct 30 23:59:46 2014 -0700

----------------------------------------------------------------------
 .../org/apache/spark/sql/hive/hiveUdfs.scala    | 25 ++++++++++----------
 1 file changed, 12 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/58a6077e/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUdfs.scala
----------------------------------------------------------------------
diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUdfs.scala 
b/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUdfs.scala
index aff4ddc..86f7eea 100644
--- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUdfs.scala
+++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/hiveUdfs.scala
@@ -28,6 +28,7 @@ import org.apache.hadoop.hive.ql.exec.{UDF, UDAF}
 import org.apache.hadoop.hive.ql.exec.{FunctionInfo, FunctionRegistry}
 import org.apache.hadoop.hive.ql.udf.{UDFType => HiveUDFType}
 import org.apache.hadoop.hive.ql.udf.generic._
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDF._
 
 import org.apache.spark.Logging
 import org.apache.spark.sql.catalyst.analysis
@@ -134,11 +135,19 @@ private[hive] case class HiveSimpleUdf(functionClassName: 
String, children: Seq[
   }
 }
 
+// Adapter from Catalyst ExpressionResult to Hive DeferredObject
+private[hive] class DeferredObjectAdapter(oi: ObjectInspector)
+  extends DeferredObject with HiveInspectors {
+  private var func: () => Any = _
+  def set(func: () => Any) {
+    this.func = func
+  }
+  override def prepare(i: Int) = {}
+  override def get(): AnyRef = wrap(func(), oi)
+}
+
 private[hive] case class HiveGenericUdf(functionClassName: String, children: 
Seq[Expression])
   extends HiveUdf with HiveInspectors {
-
-  import org.apache.hadoop.hive.ql.udf.generic.GenericUDF._
-
   type UDFType = GenericUDF
 
   @transient
@@ -161,16 +170,6 @@ private[hive] case class HiveGenericUdf(functionClassName: 
String, children: Seq
   protected lazy val deferedObjects =
     argumentInspectors.map(new 
DeferredObjectAdapter(_)).toArray[DeferredObject]
 
-  // Adapter from Catalyst ExpressionResult to Hive DeferredObject
-  class DeferredObjectAdapter(oi: ObjectInspector) extends DeferredObject {
-    private var func: () => Any = _
-    def set(func: () => Any) {
-      this.func = func
-    }
-    override def prepare(i: Int) = {}
-    override def get(): AnyRef = wrap(func(), oi)
-  }
-
   lazy val dataType: DataType = inspectorToDataType(returnInspector)
 
   override def eval(input: Row): Any = {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to