Davies Liu created SPARK-17230:
----------------------------------

             Summary: Writing decimal to csv will result empty string if the 
decimal exceeds (20, 18)
                 Key: SPARK-17230
                 URL: https://issues.apache.org/jira/browse/SPARK-17230
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 2.0.0, 1.6.2
            Reporter: Davies Liu
            Assignee: Davies Liu


{code}
// file content 
spark.read.csv("/mnt/djiang/test-case.csv").show 
// read in as string and create temp view 
spark.read.csv("/mnt/djiang/test-case.csv").createOrReplaceTempView("test") 
// confirm schema 
spark.table("test").printSchema 
// apply decimal calculation, confirm the result is correct 
spark.sql("select _c0, cast(_c0 as long) * cast('1.0' as decimal(38, 18)) from 
test").show(false) 
// run the same query, and write out as csv 
spark.sql("select _c0, cast(_c0 as long) * cast('1.0' as decimal(38, 18)) from 
test").write.csv("/mnt/djiang/test-case-result") 
// show the content of the result file, particularly, for number exceeded 
decimal(20, 18), the csv is not writing anything or failing silently 
spark.read.csv("/mnt/djiang/test-case-result").show

+------+ 
| _c0| 
+------+ 
| 1| 
| 10| 
| 100| 
| 1000| 
| 10000| 
|100000| 
+------+

root 
|-- _c0: string (nullable = true)

+------+-------------------------------------------------------------------------------------------------------------------------------------------------+
 
|_c0 |(CAST(CAST(CAST(CAST(_c0 AS DECIMAL(20,0)) AS BIGINT) AS DECIMAL(20,0)) 
AS DECIMAL(38,18)) * CAST(CAST(1.0 AS DECIMAL(38,18)) AS DECIMAL(38,18)))| 
+------+-------------------------------------------------------------------------------------------------------------------------------------------------+
 
|1 |1.000000000000000000 | 
|10 |10.000000000000000000 | 
|100 |100.000000000000000000 | 
|1000 |1000.000000000000000000 | 
|10000 |10000.000000000000000000 |
|100000|100000.000000000000000000 | 
+------+-------------------------------------------------------------------------------------------------------------------------------------------------+

+------+--------------------+ 
| _c0| _c1| 
+------+--------------------+ 
| 1|1.000000000000000000| 
| 10|10.00000000000000...| 
| 100| | 
| 1000| | 
| 10000| | 
|100000| | 
+------+--------------------+
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to