You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Arthur Li <li...@126.com> on 2022/04/30 14:47:06 UTC
Table API filter scala表达方式提示类型不匹配
Hi all,
我在使用filter scala表达方式时,提示需要Expression类型,但是实际是String类型,但是这种写法在源码文档里是推荐的。
我的代码:
sensorTab
// 使用Expression方式,例如 tab.select($"key", $"value".avg + " The average" as "average")
.select($"id", $"temperature")
// 使用Expression方式
// .filter($("id").isEqual("sensor_1"))
// 使用这种方式,类型不匹配
// Required Expression, Found String
.filter($"id" === "sensor_1”) // error
.toDataStream
.print("select sensor_1")
源码文档:
Filters out elements that don't pass the filter predicate. Similar to a SQL WHERE clause.
Example:
tab.filter($("name").isEqual("Fred"));
Scala Example:
tab.filter($"name" === "Fred”)
Table filter(Expression predicate);
Re: Table API filter scala表达方式提示类型不匹配
Posted by Arthur Li <li...@126.com>.
没有问题了,因为隐式转换问题。
> 2022年4月30日 22:47,Arthur Li <li...@126.com> 写道:
>
> Hi all,
>
> 我在使用filter scala表达方式时,提示需要Expression类型,但是实际是String类型,但是这种写法在源码文档里是推荐的。
>
> 我的代码:
> sensorTab
> // 使用Expression方式,例如 tab.select($"key", $"value".avg + " The average" as "average")
> .select($"id", $"temperature")
> // 使用Expression方式
> // .filter($("id").isEqual("sensor_1"))
> // 使用这种方式,类型不匹配
> // Required Expression, Found String
> .filter($"id" === "sensor_1”) // error
> .toDataStream
> .print("select sensor_1")
>
>
> 源码文档:
>
> Filters out elements that don't pass the filter predicate. Similar to a SQL WHERE clause.
> Example:
>
> tab.filter($("name").isEqual("Fred"));
>
> Scala Example:
>
> tab.filter($"name" === "Fred”)
>
> Table filter(Expression predicate);
>