Flink SQL: брось Бигинт в Таймс - PullRequest
1 голос
/ 20 июня 2019

вопрос довольно простой, но я не смог найти ответа в интернете.

У меня есть запрос 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

Проблема заключается в том, что мои метки времени поля отображаются как BIGINT вместо TIMESTAMP, и у меня есть ошибка в функциях HOP. Как я могу привести его к типу TIMESTAMP?

1 Ответ

0 голосов
/ 20 июня 2019

К сожалению, нет встроенной поддержки для преобразования из Epoch Millis в java.sql.Timestamp. Для этого вы можете использовать UDF:

class UnixEpochToTimestamp extends ScalarFunction {
  def eval(epochMillis: Long): Timestamp = {
    new Timestamp(epochMillis)
  }
}
...