aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Shkurenko <ashkurenko@enova.com>2015-08-20 10:16:38 -0700
committerShivaram Venkataraman <shivaram@cs.berkeley.edu>2015-08-20 10:16:57 -0700
commita7027e6d3369a1157c53557c8215273606086d84 (patch)
tree2f52e62090dd0fbd8e87cde9956dddc34d5af7de
parent257e9d727874332fd192f6a993f9ea8bf464abf5 (diff)
downloadspark-a7027e6d3369a1157c53557c8215273606086d84.tar.gz
spark-a7027e6d3369a1157c53557c8215273606086d84.tar.bz2
spark-a7027e6d3369a1157c53557c8215273606086d84.zip
[SPARK-9982] [SPARKR] SparkR DataFrame fail to return data of Decimal type
Author: Alex Shkurenko <ashkurenko@enova.com> Closes #8239 from ashkurenko/master. (cherry picked from commit 39e91fe2fd43044cc734d55625a3c03284b69f09) Signed-off-by: Shivaram Venkataraman <shivaram@cs.berkeley.edu>
-rw-r--r--core/src/main/scala/org/apache/spark/api/r/SerDe.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/src/main/scala/org/apache/spark/api/r/SerDe.scala b/core/src/main/scala/org/apache/spark/api/r/SerDe.scala
index d5b4260bf4..3c89f24473 100644
--- a/core/src/main/scala/org/apache/spark/api/r/SerDe.scala
+++ b/core/src/main/scala/org/apache/spark/api/r/SerDe.scala
@@ -181,6 +181,7 @@ private[spark] object SerDe {
// Boolean -> logical
// Float -> double
// Double -> double
+ // Decimal -> double
// Long -> double
// Array[Byte] -> raw
// Date -> Date
@@ -219,6 +220,10 @@ private[spark] object SerDe {
case "float" | "java.lang.Float" =>
writeType(dos, "double")
writeDouble(dos, value.asInstanceOf[Float].toDouble)
+ case "decimal" | "java.math.BigDecimal" =>
+ writeType(dos, "double")
+ val javaDecimal = value.asInstanceOf[java.math.BigDecimal]
+ writeDouble(dos, scala.math.BigDecimal(javaDecimal).toDouble)
case "double" | "java.lang.Double" =>
writeType(dos, "double")
writeDouble(dos, value.asInstanceOf[Double])