美文网首页
KeyGroupRangeAssignment.assignTo

KeyGroupRangeAssignment.assignTo

作者: 邵红晓 | 来源:发表于2019-12-19 16:43 被阅读0次

    在分配给KeyedStream中的组之前检查key是否为null
    如果用户创建KeyedStream并按键分区(可能为null),则Flink作业将抛出
    NullPointerExceptoin在运行时。但是,Flink抛出的NPE很难调试和理解
    因为它不指向Flink作业中的位置。
    建议:
    添加前提条件,以检查密钥是否不为null,如果存在则抛出描述性错误
    这是一个空值。

    代码

    DataStream <String> stream = env.fromCollection(Arrays.asList(“ aaa”,“ bbb”))
    .map(x->(String)null)
    .keyBy(x-> x); {code}
    

    报错

    Caused by: java.lang.NullPointerException
        at org.apache.flink.runtime.state.KeyGroupRangeAssignment.assignToKeyGroup(KeyGroupRangeAssignment.java:59)
        at org.apache.flink.runtime.state.KeyGroupRangeAssignment.assignKeyToParallelOperator(KeyGroupRangeAssignment.java:48)
        at org.apache.flink.streaming.runtime.partitioner.KeyGroupStreamPartitioner.selectChannels(KeyGroupStreamPartitioner.java:63)
        at org.apache.flink.streaming.runtime.partitioner.KeyGroupStreamPartitioner.selectChannels(KeyGroupStreamPartitioner.java:32)
        at org.apache.flink.runtime.io.network.api.writer.RecordWriter.emit(RecordWriter.java:101)
        at org.apache.flink.streaming.runtime.io.StreamRecordWriter.emit(StreamRecordWriter.java:81)
        at org.apache.flink.streaming.runtime.io.RecordWriterOutput.pushToRecordWriter(RecordWriterOutput.java:107)
        ... 35 more
    

    相关文章

      网友评论

          本文标题:KeyGroupRangeAssignment.assignTo

          本文链接:https://www.haomeiwen.com/subject/frxvnctx.html