本文翻译自官网: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中使用。