有没有办法设置spark csv数字格式?

时间:2018-04-13 20:18:39

标签: apache-spark apache-spark-sql

如果我使用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

2 个答案:

答案 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