aboutsummaryrefslogtreecommitdiff
path: root/core
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:38 -0700
commit39e91fe2fd43044cc734d55625a3c03284b69f09 (patch)
treea654dac2094c7c983bf7e2ca0f3d00034d37de32 /core
parent52c60537a274af5414f6b0340a4bd7488ef35280 (diff)
downloadspark-39e91fe2fd43044cc734d55625a3c03284b69f09.tar.gz
spark-39e91fe2fd43044cc734d55625a3c03284b69f09.tar.bz2
spark-39e91fe2fd43044cc734d55625a3c03284b69f09.zip
[SPARK-9982] [SPARKR] SparkR DataFrame fail to return data of Decimal type
Author: Alex Shkurenko <ashkurenko@enova.com> Closes #8239 from ashkurenko/master.
Diffstat (limited to 'core')
-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])