Spark Write CSV-时间戳格式问题

时间:2018-09-17 09:38:19

标签: csv apache-spark timestamp

我在蜂巢表中使用时间戳格式的时间高达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")
    
    • 不起作用?

有人知道任何解决方案吗?

2 个答案:

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