1

这个问题很简单,但我在互联网上找不到任何答案。

我有一个如下所示的 Flink SQL 查询:

SELECT 
  HOP_START(timestampMs, INTERVAL '5' SECOND, INTERVAL '10' SECOND) as wStart, SUM(`value`) - MINVALUE(`value`), ID
FROM MySource 
GROUP BY HOP(timestampMs, INTERVAL '5' SECOND, INTERVAL '10' SECOND), ID

问题是我的字段 timestampMs 被视为 aBIGINT而不是 a TIMESTAMP,并且我在函数上有错误HOP。如何将其转换为TIMESTAMPtype ?

4

1 回答 1

0

不幸的是,没有内置支持将 Epoch Millis 转换为java.sql.Timestamp. 您可以为此使用 UDF:

class UnixEpochToTimestamp extends ScalarFunction {
  def eval(epochMillis: Long): Timestamp = {
    new Timestamp(epochMillis)
  }
}
于 2019-06-20T12:51:30.173 回答