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.

Reply via email to