gpt4 book ai didi

scala - Spark十进制类型精度损失

转载 作者:行者123 更新时间:2023-12-01 17:18:14 26 4
gpt4 key购买 nike

我正在对货币度量的 Spark 小数类型进行一些测试,当我设置如下所示的比例和精度时,我看到一些奇怪的精度结果。我想确保在计算过程中不会丢失任何数据,但下面的示例并不能保证这一点。谁能告诉我为什么 Spark sql 会发生这种情况?目前版本为2.3.0

val sql = """select cast(cast(3 as decimal(38,14)) / cast(9 as decimal(38,14)) as decimal(38,14)) val"""
spark.sql(sql).show

这会返回

+----------------+
| val|
+----------------+
|0.33333300000000|
+----------------+

最佳答案

这是当前 Unresolved 问题,请参阅 SPARK-27089 。建议的解决方法是调整以下设置。我验证了此设置设置为 false 时 SQL 语句是否按预期工作。

spark.sql.decimalOperations.allowPrecisionLoss=false

关于scala - Spark十进制类型精度损失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55046492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com