Flink SQL - 如何使用自定义模式解析 TIMESTAMP?
Flink SQL - How to parse a TIMESTAMP with custom pattern?
从文档看来 Flink 的 SQL 只能解析特定格式的时间戳,即:
TIMESTAMP string: Parses a timestamp string in the form "yy-mm-dd hh:mm:ss.fff" to a SQL timestamp.
有什么方法可以传入自定义 DateTimeFormatter 来解析不同类型的时间戳格式吗?
您可以使用用户定义的标量函数 (UDF) 实现任何解析逻辑。
这在 Scala 中看起来如下。
class TsParser extends ScalarFunction {
def eval(s: String): Timestamp = {
// your logic
}
}
定义函数后,必须在 TableEnvironment
:
处注册
tableEnv.registerFunction("tsParser", new TsParser())
现在您可以像使用任何内置函数一样使用函数 tsParser
。
详情见documentation。
从文档看来 Flink 的 SQL 只能解析特定格式的时间戳,即:
TIMESTAMP string: Parses a timestamp string in the form "yy-mm-dd hh:mm:ss.fff" to a SQL timestamp.
有什么方法可以传入自定义 DateTimeFormatter 来解析不同类型的时间戳格式吗?
您可以使用用户定义的标量函数 (UDF) 实现任何解析逻辑。
这在 Scala 中看起来如下。
class TsParser extends ScalarFunction {
def eval(s: String): Timestamp = {
// your logic
}
}
定义函数后,必须在 TableEnvironment
:
tableEnv.registerFunction("tsParser", new TsParser())
现在您可以像使用任何内置函数一样使用函数 tsParser
。
详情见documentation。