使用MAX()时无法将java.lang.Long强制转换为java.lang.Double ERROR

时间:2018-11-20 09:23:15

标签: google-cloud-dataprep

自从Cloud Dataprep于2018年11月19日更新以来,每次我单独或以枢轴方式使用函数MAX()时都会遇到错误。

一些注意事项:

  • 我在另一个数据集上使用了MAX函数,它正在运行。 (因此max()有效)
  • 昨天dataprep更新之前我没有这个问题, 流量正常。
  • 我尝试了很多时间来编辑配方以隔离 问题,但似乎是MAX()函数
  • 我正在使用MAX()的列为INT类型。我试图转换INT-> FLOAT-> INT,以确保它在使用MAX()之前为INT,但仍会遇到相同的问题

这是日志

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double
    at com.trifacta.google.dataflow.functions.MaxCombineFn.binaryOperation(MaxCombineFn.java:18)
    at com.trifacta.google.dataflow.functions.BinaryOperationCombineFn.addInput(BinaryOperationCombineFn.java:60)
    at org.apache.beam.sdk.transforms.CombineFns$ComposedCombineFn.addInput(CombineFns.java:295)
    at org.apache.beam.sdk.transforms.CombineFns$ComposedCombineFn.addInput(CombineFns.java:212)
    at org.apache.beam.runners.core.GlobalCombineFnRunners$CombineFnRunner.addInput(GlobalCombineFnRunners.java:109)
    at com.google.cloud.dataflow.worker.PartialGroupByKeyParDoFns$ValueCombiner.add(PartialGroupByKeyParDoFns.java:163)
    at com.google.cloud.dataflow.worker.PartialGroupByKeyParDoFns$ValueCombiner.add(PartialGroupByKeyParDoFns.java:141)
    at com.google.cloud.dataflow.worker.util.common.worker.GroupingTables$CombiningGroupingTable$1.add(GroupingTables.java:385)
    at com.google.cloud.dataflow.worker.util.common.worker.GroupingTables$GroupingTableBase.put(GroupingTables.java:230)
    at com.google.cloud.dataflow.worker.util.common.worker.GroupingTables$GroupingTableBase.put(GroupingTables.java:210)
    at com.google.cloud.dataflow.worker.util.common.worker.SimplePartialGroupByKeyParDoFn.processElement(SimplePartialGroupByKeyParDoFn.java:35)
    at com.google.cloud.dataflow.worker.util.common.worker.ParDoOperation.process(ParDoOperation.java:43)
    at com.google.cloud.dataflow.worker.util.common.worker.OutputReceiver.process(OutputReceiver.java:48)
    at com.google.cloud.dataflow.worker.SimpleParDoFn$1.output(SimpleParDoFn.java:271)
    at org.apache.beam.runners.core.SimpleDoFnRunner.outputWindowedValue(SimpleDoFnRunner.java:309)
    at org.apache.beam.runners.core.SimpleDoFnRunner.access$700(SimpleDoFnRunner.java:77)
    at org.apache.beam.runners.core.SimpleDoFnRunner$DoFnProcessContext.output(SimpleDoFnRunner.java:621)
    at org.apache.beam.sdk.transforms.DoFnOutputReceivers$WindowedContextOutputReceiver.output(DoFnOutputReceivers.java:71)
    at org.apache.beam.sdk.transforms.MapElements$1.processElement(MapElements.java:128)

1 个答案:

答案 0 :(得分:0)

我有Google Cloud Platform支持。

这是内部问题,发生在update之后的19日(如您所说)。我们对此有所了解,并且我们正在与Trifacta团队合作(因为这是由他们开发和管理的第三方产品)。

对此有Public Issue,请随时添加信息或您需要的任何内容。

编辑:问题现在已经解决,您现在可以尝试告诉我是否可行吗?