1

从文档看来,Flink 的 SQL 只能解析某种格式的时间戳,即:

TIMESTAMP 字符串:将格式为“yy-mm-dd hh:mm:ss.fff”的时间戳字符串解析为 SQL 时间戳。

有没有办法传入自定义 DateTimeFormatter 来解析不同类型的时间戳格式?

4

1 回答 1

3

您可以使用用户定义的标量函数 (UDF) 实现任何解析逻辑。

这在 Scala 中如下所示。

class TsParser extends ScalarFunction {
  def eval(s: String): Timestamp = {
    // your logic
  }
}

定义后,必须在以下位置注册该功能TableEnvironment

tableEnv.registerFunction("tsParser", new TsParser())

现在您可以tsParser像使用任何内置函数一样使用该函数。

有关详细信息,请参阅文档

于 2018-05-06T09:26:10.037 回答