1

Foundry Contour 表和列编辑器可以轻松解析包含年、月和日的某种组合作为日期的字符串,但我无法弄清楚如何将表示 Unix 时间戳的 Long 转换为日期.

有什么我错过的技巧吗?我已经尝试过CAST(utc_column AS date),这会导致错误,并且我已经探索过“解析日期”,但似乎只有包含年、月和日的某种组合的字符串才有效。

4

1 回答 1

1

您不能直接将 long 转换为日期,但可以将它们转换为时间戳。如果您特别想要日期而不是时间戳,则可以转换为日期。

需要注意的是,Spark 假设您要转换为时间戳的 long 是自纪元以来的秒数,而不是自纪元以来的毫秒数。

因此,最终查询可能必须类似于:

CAST(CAST((utc_column) AS TIMESTAMP) AS DATE)

或者

CAST(CAST((utc_column / 1000) AS TIMESTAMP) AS DATE)

取决于底层 Unix 时间戳的缩放。这是 Spark 的一个潜在功能,Palantir 团队正在寻找方法来改善这种铸造的体验。

于 2020-09-24T21:44:57.407 回答