本文翻译自官网:Built-In Functions https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/functions.html
Flink Table API和SQL为用户提供了一组用于数据转换的内置函数。此页面简要概述了它们。如果尚不支持所需的功能,则可以实现用户定义的功能。如果您认为该功能足够通用,请为此打开Jira问题,并提供详细说明。
标量函数
-
比较功能
-
逻辑功能
-
算术函数
-
字符串函数
-
时间功能
-
条件函数
-
类型转换功能
-
收集功能
-
价值建构功能
-
价值访问功能
-
分组功能
-
散列函数
-
辅助功能
汇总功能
时间间隔和点单位说明符
列功能
标量函数
标量函数将零个,一个或多个值作为输入,并返回一个值作为结果。
比较功能
算术函数
字符串函数
时间函数
Collection 函数功能
分组函数
汇总函数
聚合函数将所有行中的表达式作为输入,并返回单个聚合值作为结果。
时间间隔和点单位说明符
下表列出了时间间隔和时间单位的说明符。
对于Table API,请使用_空格(例如DAY_TO_HOUR)。
列函数
列函数用于选择或删除列. 详细语法如下:
columnFunction:
withColumns(columnExprs)
withoutColumns(columnExprs)
columnExprs:
columnExpr [, columnExpr]*
columnExpr:
columnRef | columnIndex to columnIndex | columnName to columnName
columnRef:
columnName(The field name that exists in the table) | columnIndex(a positive integer starting from 1)
下表说明了column函数的用法。(假设我们有一个包含5列的表)(a: Int, b: Long, c: String, d:String, e: String):
列函数可以在所有需要列字段的地方使用,select, groupBy, orderBy, UDFs 等.例如:
table
.groupBy(withColumns(1 to 3))
.select(withColumns('a to 'b), myUDAgg(myUDF(withColumns(5 to 20))))
注意:列函数仅在Table API中使用。