开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC 这个错误 本地加了字段判断也没有null值 这是咋回事啊?

Flink CDC 程序在本地执行没有任何报错 数据也在正常进表 但是提交到集群执行就给我报了个org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException: Could not forward element to next operator
at org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:88) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:46) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:26) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:50) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:28) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at org.apache.flink.streaming.api.operators.StreamSourceContexts$ManualWatermarkContext.processAndCollectWithTimestamp(StreamSourceContexts.java:322) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at org.apache.flink.streaming.api.operators.StreamSourceContexts$WatermarkContext.collectWithTimestamp(StreamSourceContexts.java:426) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at com.aliyun.openservices.log.flink.model.LogDataFetcher.emitRecordAndUpdateState(LogDataFetcher.java:357) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at com.aliyun.openservices.log.flink.model.ShardConsumer.processRecordsAndSaveOffset(ShardConsumer.java:242) ~[ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at com.aliyun.openservices.log.flink.model.ShardConsumer.run(ShardConsumer.java:166) [ywwlflink-1.0-SNAPSHOT-jar-with-dependencies.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_201]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_201]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
这个错误 本地加了字段判断也没有null值 这是咋回事啊?

展开
收起
cuicuicuic 2023-09-28 10:58:35 43 0
1 条回答
写回答
取消 提交回答
  • 您好,这个错误的提示信息如下:

    org.apache.flink.table.api.ValidationException: Cannot convert null to INT
    这个错误表示,您在 Flink 中使用了 int 类型的字段,但是您传入的数据为 null。

    您可以使用 isPresent() 方法判断数据是否为 null,如果数据为 null,则不进行类型转换。

    以下是一个简单的示例:

    int value = null;

    if (value != null) {
    System.out.println("value: " + value);
    }
    这个示例会在 value 不为 null 时,打印出 value 的值。

    希望这个回答对您有所帮助。

    2023-10-17 10:08:22
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载