【问题标题】:Azure SQL Datawarehouse - JVM SimpleDateFormat supportAzure SQL 数据仓库 - JAVA SimpleDateFormat 支持
【发布时间】:2017-03-19 16:51:02
【问题描述】:

JVM SimpleDateFormat domain 转换时间戳时,我目前遇到了 Azure SQL DW 的限制 给SQL DW's DateFormat domain.

在我当前的场景中,我们使用 Spark 执行数据清理,当数据作为 CSV 文件写出时,其写出为以下格式的时间戳:

  • "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
  • 2001-07-04T12:08:56.235-07:00

查看 DATE_FORMAT 选项下的 DateTimeOffset,不支持上述输出中的粗体 T

有没有办法直接将传入的字符串解释为 DateTime 类型?

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

【问题讨论】:

  • 请提供你有什么/到目前为止你尝试了什么。
  • 如果我可以问,这与 apache-spark 有什么关系?
  • @eliasah 与 Spark 格式化输出时间戳的方式有关,它在 ISO8601 combined Date+Time format 中发出。关于 Spark,我想问一下是否有办法让 Spark 将时间戳类型序列化为 SQL DW 可以在外部表中读取的格式。
  • 我想我问错了这个问题,这个问题最精炼的版本是如何将 ISO8601 组合日期时间格式的时间戳字符串加载到 Azure SQL DW 中。

标签: java scala apache-spark datetime-format azure-sqldw


【解决方案1】:

看起来除非您在日期时间到达 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 中投票以获得更灵活的日期时间格式,这样您就不必经历这个过程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-21
    • 2016-06-30
    • 1970-01-01
    • 2016-10-26
    • 2016-02-06
    • 2016-06-12
    • 1970-01-01
    • 2021-03-04
    相关资源
    最近更新 更多