ds1.filter(//here selection of query 1) ds2.filter(//here selection of query 2)
exist ds1.join(ds2.distinct(id)).where(id).equal(id){ // join by your join key(s) - note the distinct operator, otherwise you will get many line for each input line (left, right) => left //collect left } or ds1.cogroup(ds2).where(id).equal(id){ //cogroup by your join key(s) (left : Iterator, right: Iterator, out: Collector) => if(right.hasNext) //exist something in right dataset while(left.hasNext) //collect all the left out.collect(left.next) } not exist ds1.cogroup(ds2).where(id).equal(id){ //cogroup by your join key(s) (left : Iterator, right: Iterator, out: Collector) => if( ! right.hasNext) //nothing exists in right dataset - note the not (exclamation mark) in front while(left.hasNext) //collect all the left out.collect(left.next) } in short you are doing a full-outer-join and keeping only elements with at [ least one(exist) | no(not exist) ] matching element this is just a sketch written on my smartphone you should re-adapt it to your query cheers > Il giorno 16/lug/2015, alle ore 00:44, hagersaleh <loveallah1...@yahoo.com> > ha scritto: > > please help > I want example > > > > -- > View this message in context: > http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/How-can-handles-Exist-not-Exist-query-on-flink-tp1939p2068.html > Sent from the Apache Flink User Mailing List archive. mailing list archive at > Nabble.com.