Repository: spark Updated Branches: refs/heads/branch-2.1 9f0e3be62 -> 207107bca
[SPARK-18835][SQL] Don't expose Guava types in the JavaTypeInference API. This avoids issues during maven tests because of shading. Author: Marcelo Vanzin <[email protected]> Closes #16260 from vanzin/SPARK-18835. (cherry picked from commit f280ccf449f62a00eb4042dfbcf7a0715850fd4c) Signed-off-by: Marcelo Vanzin <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/207107bc Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/207107bc Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/207107bc Branch: refs/heads/branch-2.1 Commit: 207107bca5e550657b02892eef74230787972d10 Parents: 9f0e3be Author: Marcelo Vanzin <[email protected]> Authored: Tue Dec 13 10:02:19 2016 -0800 Committer: Marcelo Vanzin <[email protected]> Committed: Tue Dec 13 10:02:29 2016 -0800 ---------------------------------------------------------------------- .../apache/spark/sql/catalyst/JavaTypeInference.scala | 12 +++++++++++- .../scala/org/apache/spark/sql/UDFRegistration.scala | 4 +--- 2 files changed, 12 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/spark/blob/207107bc/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala ---------------------------------------------------------------------- diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala index 04f0cfc..61c153c 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala @@ -19,6 +19,7 @@ package org.apache.spark.sql.catalyst import java.beans.{Introspector, PropertyDescriptor} import java.lang.{Iterable => JIterable} +import java.lang.reflect.Type import java.util.{Iterator => JIterator, List => JList, Map => JMap} import scala.language.existentials @@ -56,10 +57,19 @@ object JavaTypeInference { /** * Infers the corresponding SQL data type of a Java type. + * @param beanType Java type + * @return (SQL data type, nullable) + */ + private[sql] def inferDataType(beanType: Type): (DataType, Boolean) = { + inferDataType(TypeToken.of(beanType)) + } + + /** + * Infers the corresponding SQL data type of a Java type. * @param typeToken Java type * @return (SQL data type, nullable) */ - private[sql] def inferDataType(typeToken: TypeToken[_]): (DataType, Boolean) = { + private def inferDataType(typeToken: TypeToken[_]): (DataType, Boolean) = { typeToken.getRawType match { case c: Class[_] if c.isAnnotationPresent(classOf[SQLUserDefinedType]) => (c.getAnnotation(classOf[SQLUserDefinedType]).udt().newInstance(), true) http://git-wip-us.apache.org/repos/asf/spark/blob/207107bc/sql/core/src/main/scala/org/apache/spark/sql/UDFRegistration.scala ---------------------------------------------------------------------- diff --git a/sql/core/src/main/scala/org/apache/spark/sql/UDFRegistration.scala b/sql/core/src/main/scala/org/apache/spark/sql/UDFRegistration.scala index c8be89c..d94185b 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/UDFRegistration.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/UDFRegistration.scala @@ -23,8 +23,6 @@ import java.lang.reflect.{ParameterizedType, Type} import scala.reflect.runtime.universe.TypeTag import scala.util.Try -import com.google.common.reflect.TypeToken - import org.apache.spark.annotation.InterfaceStability import org.apache.spark.internal.Logging import org.apache.spark.sql.api.java._ @@ -446,7 +444,7 @@ class UDFRegistration private[sql] (functionRegistry: FunctionRegistry) extends val udfReturnType = udfInterfaces(0).getActualTypeArguments.last var returnType = returnDataType if (returnType == null) { - returnType = JavaTypeInference.inferDataType(TypeToken.of(udfReturnType))._1 + returnType = JavaTypeInference.inferDataType(udfReturnType)._1 } udfInterfaces(0).getActualTypeArguments.length match { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
