尝试使用 Google Dataflow 中的 BeamSQL 从 BigQuery 表中获取唯一值。使用 Group By 子句实现了 BeamSQL 中的条件(下面的示例查询)。其中一列具有浮点数据类型。在执行作业时遇到以下异常,
原因:org.apache.beam.sdk.coders.Coder$NonDeterministicException: org.apache.beam.sdk.coders.RowCoder@81d6d10 不是确定性的,因为:所有字段都必须具有确定性编码。原因:org.apache.beam.sdk.coders.Coder$NonDeterministicException:FloatCoder 不是确定性的,因为:浮点编码不能保证是确定性的。
BeamSQL 查询:
PCollection ST= mainColl.apply(SqlTransform.query("SELECT ID,ITEM,UNITPRICE FROM PCOLLECTION GROUP BY ID,ITEM,UNITPRICE"));
如果有人帮助我解决这个问题,那就太好了。
请注意,如果我们删除 float 列,那么 BeamSQL 查询就可以正常工作。