r语言 - SparkR:在 write.json 时关闭科学记数法



我不得不在项目的某些部分使用SparkR,我通常使用scala。我使用以下代码写出一个文件

# Let's set the scipen
options(scipen=999)  
# create a spark dataframe and write out
sdf <- SparkR::as.DataFrame(df)   
SparkR::head(sdf) # all looks good
SparkR::write.json(sdf, path=somePath, mode="append") # does not look good

但是,当我去查看写出的输出时,我的一个变量(在本例中为时间戳(是使用科学记数法写出的,例如 1.4262E12。当我宁愿让它很长时,例如1426256000000。由于某种原因,我无法弄清楚为什么write.json以这种方式写入文件。在写出文件之前,我查看了我的火花数据帧,并看到写出的时间戳很长。任何人都可以帮助/建议解决此问题吗?

下面是架构的示例,必须以这种方式保持:

root
|-- price: integer (nullable = true)
|-- timestamp: double (nullable = true)

谢谢你@nate,这解决了我的问题,它适用于我无论如何都必须使用的模式:

sdf$timestamp <- SparkR::cast(sdf$timestamp, "long")

最新更新