Apache spark 从Apache Spark加载时,小数以科学格式存储在配置单元表中
我面临一个配置单元表的问题,其中十进制数(如0.00000000000)存储为0E-11。即使它们代表相同的值0,我也不明白为什么它会以科学格式存储。这是用于数值计算的百分比字段之一,因此十进制数字的比例应较高。即使它是科学的形式,它不会以任何方式影响我们的计算。我们可以进行数字运算,但科学格式的表示可能会给使用此表的人带来一些混乱。此问题仅在百分比为0时发生。在其他存在有效百分比(如0.123456789)的情况下,该值按原样存储,不带任何ε 你能解释一下为什么0.00000000000是用科学格式表示的吗?。另外,我想知道,如果没有像0.00000000000这样的ε,如何存储十进制数。出于我们的目的,我们只希望解决方案采用配置单元查询语言(HQL),因为我们有一个接受HQL文件并将HQL文件的结果写入配置单元表的框架 为了演示这个问题,我遵循了以下步骤Apache spark 从Apache Spark加载时,小数以科学格式存储在配置单元表中,apache-spark,hive,apache-spark-sql,parquet,spark-shell,Apache Spark,Hive,Apache Spark Sql,Parquet,Spark Shell,我面临一个配置单元表的问题,其中十进制数(如0.00000000000)存储为0E-11。即使它们代表相同的值0,我也不明白为什么它会以科学格式存储。这是用于数值计算的百分比字段之一,因此十进制数字的比例应较高。即使它是科学的形式,它不会以任何方式影响我们的计算。我们可以进行数字运算,但科学格式的表示可能会给使用此表的人带来一些混乱。此问题仅在百分比为0时发生。在其他存在有效百分比(如0.123456789)的情况下,该值按原样存储,不带任何ε 你能解释一下为什么0.00000000000是用科
如果有任何问题,请告诉我。我想格式编号功能应该可以帮您解决 请看下面的帖子 感谢用户 我检查过了,它正在工作
选择格式\u编号(0.00000000000,11)代码>
注意:没有足够的声誉发表评论,因此请将其作为答案添加到此处。谢谢@linusRian的回答。你的答案当然有帮助,但我也在寻找任何其他答案,解释为什么0.0000首先以科学格式表示。关于format_string还有一点需要注意,它默认添加了1000个分隔符,返回类型为string。因此,对于那些希望避免使用科学格式但写入的最终数据类型是decimal的人,他们可能不会从该函数中受益,因为将number_格式的结果强制转换为null形式的decimal结果。@VenkatesanMuniappan对,请理解:)。如果我得到您问题的答案,我将更新。提前感谢:)。