从文档中看,Flink 的 SQL 只能解析特定格式的时间戳,即:
时间戳字符串:将格式为"yy-mm-dd hh:mm:ss.fff"的时间戳字符串解析为 SQL 时间戳。
有没有办法传入自定义日期时间格式化程序来解析不同类型的时间戳格式?
您可以使用用户定义的标量函数 (UDF( 实现任何解析逻辑。
这将在 Scala 中如下所示。
class TsParser extends ScalarFunction {
def eval(s: String): Timestamp = {
// your logic
}
}
一旦定义,函数必须在TableEnvironment
注册:
tableEnv.registerFunction("tsParser", new TsParser())
现在,您可以像使用任何内置函数一样使用该函数tsParser
。
有关详细信息,请参阅文档。