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