我在蜂巢表中使用时间戳格式的时间高达6毫秒,同时编写Spark CSV格式-不允许我写入超过3毫秒的时间。
1)源格式:“ yyyy-mm-dd hh:mi:ss.SSSSSS”
2)csv格式:“ yyyy-mm-dd hh:mi:ss.SSS”
即使在写入CSV中指定了最多6个SSSSSS millisecs格式后,也无法使用。
DF.write.
option("sep","~").
option("quoteAll", "true").
option("timestampFormat","yyyy-MM-dd HH:mm:ss.SSSSSS")
有人知道任何解决方案吗?
答案 0 :(得分:0)
未在文档中指定选项“ timestampFormat”: https://github.com/databricks/spark-csv。 也许“ dateFormat”可以使用相同的值。
作为解决方法,可以在保存之前将时间戳手动转换为字符串。
答案 1 :(得分:0)
这是对我有用的代码段。
我在那里需要一个'T'字符,并且没有秒或微秒。 timestampFormat 选项确实可以解决此问题。
DF.write
.mode(SaveMode.Overwrite)
.option("timestampFormat", "yyyy-MM-dd'T'HH:mm")
例如2017-02-20T06:53
如果用空格代替“ T”,则会得到以下信息:
DF.write
.mode(SaveMode.Overwrite)
.option("timestampFormat", "yyyy-MM-dd HH:mm")
例如2017-02-20 06:53