From 57c12557cb1280e488a1c6ac7d89a7bc40d557b0 Mon Sep 17 00:00:00 2001 From: "navis.ryu" Date: Tue, 13 Oct 2015 13:34:57 +0900 Subject: [PATCH] [SPARK-11067] Spark SQL thrift server fails to handle decimal value --- .../hive/thriftserver/SparkExecuteStatementOperation.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala index 719b03e1c7c71..5d68310604941 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala @@ -22,6 +22,8 @@ import java.sql.{Date, Timestamp} import java.util.concurrent.RejectedExecutionException import java.util.{Arrays, UUID, Map => JMap} +import org.apache.hadoop.hive.common.`type`.HiveDecimal + import scala.collection.JavaConverters._ import scala.collection.mutable.{ArrayBuffer, Map => SMap} import scala.util.control.NonFatal @@ -73,7 +75,7 @@ private[hive] class SparkExecuteStatementOperation( case FloatType => to += from.getFloat(ordinal) case DecimalType() => - to += from.getDecimal(ordinal) + to += HiveDecimal.create(from.getDecimal(ordinal)) case LongType => to += from.getLong(ordinal) case ByteType =>