在下面的spark-scala代码中,双精度数据类型的值以不同的方式存储。虽然在表中,但所有列都是字符串类型。黑斑鹿也有同样的结果。
有人知道如何确保保存和检索精确的值吗?
谢谢
val df = Seq(("one", 1324235345435.4546)).toDF("a", "b")
df.write.mode("append").insertInto("test")
spark.sql("select * from test").show(false)
+---+---------------------+
|a |b |
+---+---------------------+
|one|1.3242353454354546E12|
+---+---------------------+
发布于 2019-04-01 09:09:05
scala> df.select(format_number(col("b"),4)).show(false)
+----------------------+
|format_number(b, 4) |
+----------------------+
|1,324,235,345,435.4546|
+----------------------+
您可以在列的顶部使用number_formater
函数,以便您可以将其自动转换为符合您的要求和精度的字符串。
希望这对推广有所帮助。
https://stackoverflow.com/questions/55442861
复制相似问题