2016-11-06 35 views
2

JVM SimpleDateFormat domain 转换时间戳时SQL DW's DateFormat domain.Azure的SQL数据仓库 - JVM的SimpleDateFormat支持

在我目前的情况下,我们使用的Spark进行数据清理我目前打在Azure上的SQL DW的限制时,数据被写入作为一个CSV文件,其写出为以下列格式的时间戳:

  • “YYYY-MM-dd'T'HH:MM:ss.SSSXXX”
  • 2001-07- 04 T 12:08:56.235-07 :00

下DATE_FORMAT选项看的DateTimeOffset,粗体Ť在上述输出不被支持。

有什么办法可以直接将传入的字符串解释为DateTime类型吗?

我目前的策略是将它作为VARCHAR加载并稍后进行清理。

+1

请提供你有什么/你尝试过什么等等远。 –

+0

如果我可能会问,这与apache-spark有什么关系? – eliasah

+0

@eliasah与Spark格式输出时间戳的方式有关,它使用[ISO8601组合日期+时间格式](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations)发送。 对于Spark,我想问一下是否有一种方法可以使Spark将时间戳类型转换为可以由外部表中的SQL DW读取的格式。 –

回答

2

它看起来像,除非你在它遇到SQL DW之前转换日期时间本身,它不会被解释为由于T的日期时间。你最好的选择是将它作为varchar,然后将它作为日期时间在SQL DW中由于上市这里:https://msdn.microsoft.com/en-us/library/ms187928.aspx#Examples: Azure SQL Data Warehouse and Parallel Data Warehouse

我也建议铸造在feature request portal一票更灵活的日期时间格式,这样你就不必去经历这个过程

相关问题