Hi Jun Zou.
tEnv.createTemporaryView("`Word-Count`", input, $("word"), $("frequency"));
加上 ` 试一下。
Jun Zou <
[hidden email]> 于2021年5月26日周三 下午4:33写道:
> Hi,all:
> 我使用flink1.11.2进行作业开发,由于要兼容内部历史代码,需要把source手动注册成一张表,调用为:
>
> > tableEnv.createTemporaryView(tableSource.getName, source, fields.toArray:
> > _*)
> >
> 其中,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语句中操作的字段名不一致报错。
>
> 有什么方法能够处理这种情况么?
>