Hi Flavio! Keys cannot be null in Flink, that is a contract deep in the system.
Filter out the null valued elements, or, if you want them in the result, I would try to use a special value for "null". That should do it. BTW: In SQL, joining on null usually filters out elements, as key operations on null are undefined. Greetings, Stephan On Thu, Jul 2, 2015 at 7:10 PM, Flavio Pompermaier <pomperma...@okkam.it> wrote: > Hi to all, > > I'd like to join 2 datasets of POJO, let's say for example: > > Person: > - name > - birthPlaceId > > Place: > - id > - name > > I'd like to do > people.coCoGroup(places).where("birthPlaceId").equalTo("id").with(...) > > However, not all people have a birthPlaceId value in my use case..so I get > a NullPointer. > Am I using the wrong operator for this? > This is the stackTrace: > > java.lang.RuntimeException: A NullPointerException occured while accessing > a key field in a POJO. Most likely, the value grouped/joined on is null. > Field name: birthPlaceId > at > org.apache.flink.api.java.typeutils.runtime.PojoComparator.hash(PojoComparator.java:217) > at > org.apache.flink.runtime.operators.shipping.OutputEmitter.hashPartitionDefault(OutputEmitter.java:175) > at > org.apache.flink.runtime.operators.shipping.OutputEmitter.selectChannels(OutputEmitter.java:132) > at > org.apache.flink.runtime.operators.shipping.OutputEmitter.selectChannels(OutputEmitter.java:28) > at > org.apache.flink.runtime.io.network.api.writer.RecordWriter.emit(RecordWriter.java:78) > at > org.apache.flink.runtime.operators.shipping.OutputCollector.collect(OutputCollector.java:65) > > Best, > Flavio >