簡體   English   中英

Spark SQL sum函數在double值上發布

[英]Spark SQL sum function issues on double value

我們試圖使用Spark SQL sum函數對double值求和。

樣本數據:

+------+
|amount|
+------+
|  1000|
|  1050|
|  2049|
+------+

示例代碼:

df.select("amount").show();
df.registerTempTable("table");
sqlContext.sql("select amount/pow(10,2) from table").show();
sqlContext.sql("select sum((amount/pow(10,2))) from table").show();

精確度:

+-----+
|  _c0|
+-----+
| 10.0|
| 10.5|
|20.49|
+-----+

總和后輸出:

+------------------+
|               _c0|
+------------------+
|40.989999999999995|
+------------------+

執行輸出為40.99 ,但為什么輸出為40.989999999999995

感謝任何幫助。

確保將總和計算為十進制 (Spark SQL映射)。

例如: select sum( cast(amount as decimal) / cast(pow(10,2) as decimal) ) from table

我建議您將金額轉換為十進制類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM