如果我使用myDF.write.csv("wherever")
,如何设置存储数据的数字格式? EG,如果我这样做:
val t = spark.sql("SELECT cast(1000000000000 as double) as aNum")
t.write.csv("WXYZ")
然后查看WXYZ
,我会发现我有1.0E12
。如何为所有双打更改此项,以便我获得1000000000000.00
?
答案 0 :(得分:1)
我处理此问题的方法是将数字转换为字符串
val t = spark.sql("SELECT cast(1000000000000 as string) as aNum")
t.write.csv("WXYZ")
t.show()
输出
+-------------+
| aNum|
+-------------+
|1000000000000|
+-------------+
:)我希望这有帮助!
答案 1 :(得分:0)
如果来自蜂巢的数据有一个你可以使用的蜂巢udf printf
:
select printf('%.2f', col) from foobar
planB:
dataset.map( col => s"$col%.2f")
照顾planB,根据您的数据源可能会产生额外费用
顺便说一句,有时它可能只是excel中显示的问题,只需用文本编辑器检查csv