0

我正在尝试使用 Calcite SQL 语法对 Apache Beam 进行 SQL 转换。我正在做一个 int 到布尔转换。我的 sql 看起来像这样:

,CASE WHEN cast(IsService as BOOLEAN) THEN CASE WHEN IsEligible THEN 1 ELSE 0 END ELSE NULL END AS Reported

其中 IsService 是一个 int 指标,而 IsEligible 是一个布尔值。

根据文档,从 int 到 boolean 的显式转换很好。但是,当我运行管道时出现以下错误:

Caused by: org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.sql.validate.SqlValidatorException: Cast function cannot convert value of type INTEGER to type BOOLEAN

谁能解释我为什么会收到错误?

4

1 回答 1

1

要立即解决您的问题,您可以使用IsService > 0代替CAST. 在我看来,转换是什么就更清楚了。我不喜欢依赖“虚假”的价值观。

于 2021-01-08T18:50:03.517 回答