[英]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.