开发者社区> 问答> 正文

createTemporaryView接口注册table时fieldname支持中横线(-)怎么处理

Hi,all:

我使用flink1.11.2进行作业开发,由于要兼容内部历史代码,需要把source手动注册成一张表,调用为【如图】:

其中,tableEnv为 StreamTableEnvironment类型,source是 DataStream[Row] 类型,代表source

connector生成的算子,fields是 由处理过的source table的 filed name 转换成的 Expression,将filed

name转换成expression 使用 ExpressionParser.parseExpression 这个方法

正常情况下,都能注册成功。

但是,当field name带中横线,如 source中一个字段名称为

“X-Oem”时,经过 ExpressionParser.parseExpression 会被解析为 “minus(X, Model)”

而非预期的“X-Oem”,导致注册成的表与DML语句中操作的字段名不一致报错。

有什么方法能够处理这种情况么?*来自志愿者整理的flink邮件归档

展开
收起
彗星halation 2021-12-01 17:26:42 782 0
1 条回答
写回答
取消 提交回答
  • Hi Jun   Zou.

    tEnv.createTemporaryView("Word-Count", input,   $("word"), $("frequency"));

    加上 ` 试一下。*来自志愿者整理的flink邮件归档

    2021-12-01 17:32:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载