文章目录
- 1 概述&示例
-
- 1.1 data.csv
- 1.2 代码示例
- 2 操作算子
-
- 2.1 扫描、投影和过滤
-
- 2.1.1 from_path【流批】
- 2.1.2 from_elements【流批】
- 2.1.3 select【流批】
- 2.1.4 alias【流批】
- 2.1.5 where【流批】
- 2.1.6 filter【流批】
- 2.2 列操作
-
- 2.2.1 add_columns【流批】
- 2.2.2 add_or_replace_columns【流批】
- 2.2.3 drop_columns【流批】
- 2.2.4 rename_columns【流批】
- 2.3 聚合
-
- 2.3.1 GroupBy【流批结果更新】
- 2.3.2 GroupBy Window【流批】
- 2.3.3 Over Window【流批】
- 2.3.4 Distinct Aggregation 【流批结果更新】
- 2.3.5 Distinct【流批结果更新】
- 2.4 连接
-
- 2.4.1 Inner Join【流批】
- 2.4.2 Outer Join【流批结果更新】
- 3 参考附录
Table API是批处理和流处理的统一的关系型API。
Table API的查询不需要修改代码就可以采用批输入或流输入来运行。
Table API是SQL语言的超集,并且是针对Apache Flink专门设计的。
Table API集成了Scala,Java和Python语言的API。
Table API的查询是使用Java,Scala或Python语言嵌入的风格定义的,有诸如自动补全和语法校验的IDE支持,而不是像普通SQL一样使用字符串类型的值来指定查询。
1 概述&示例
Table API支持Scala, Java和Python语言。
Scala语言的Table API利用了Scala表达式;
Java语言的Table API支持DSL表达式和解析并转换为等价表达式的字符串;Python语言的Table API仅支持解析并转换为等价表达式的字符串。
下面的例子展示了 Scala、Java 和 Python 语言的 Table API 的不同之处。表程序是在批环境下执行的。程序扫描了 Orders 表,通过字段 a 进行分组,并计算了每组结果的行数。
1.1 data.csv
lily,20,30,"2