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