aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
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])