标签: flink-table-api

如何将表转换为包含数组类型的数据流(Flink)?

我有关于 Flink (1.13+) 的 table-api 的问题。我有一个包含多个字段的 POJO,其中之一是:

List<String> my_list; 
Run Code Online (Sandbox Code Playgroud)

我使用该字段的以下声明创建表:

"CREATE TABLE my_table (
   ...
   my_list ARRAY<STRING>,
   ...
)"
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 toRetractStream[MY_POJO] 方法将表转换为 DataStream 时,出现以下错误:

线程“main”org.apache.flink.table.api.ValidationException 中出现异常:查询结果的列类型与未注册表的接收器不匹配。

原因:位置 11 处接收器列“my_list”的类型不兼容。查询架构:[..., my_list: ARRAY, ...] 接收器架构:[..., my_list: RAW('java.util.List', ?),...]

我想避免手动映射每个字段并保持代码干净,有没有解决方案来处理这种数据类型?

apache-flink flink-streaming flink-table-api

6
推荐指数
1
解决办法
1643
查看次数

Flink 表 api 文件系统连接器不可用

我正在尝试使用 flink table api (1.15.1 版本)写入本地文件系统。我正在使用 TableDescriptor.forConnector('filesystem') 但出现异常:无法找到在类路径中实现 DynamicTableFactory 的标识符“filesystem”的任何工厂。

谢谢:)

apache-flink flink-streaming flink-sql flink-batch flink-table-api

1
推荐指数
1
解决办法
588
查看次数