I was aiming to show the operations with pseudo-code, but I apparently failed, 
so Java it is ☺
Assume the following 3 datasets on HDFS.

1.       RDD1: User (1 Million rows – 2GB ) Columns: uid, locationId, (extra 
stuff)

2.       RDD2: Actions (1 Billion rows – 500GB) Columns: uid_1, uid_2 (extra 
stuff)

3.       RDD3: Locations (10 Millions rows – 10GB) Columns: locationId, (extra 
stuff)

So, what I am doing is shown below.
I assume that it is clear of why using a “join” would be really inefficient, 
but if not have a look of some of the reasons 
here<http://stackoverflow.com/questions/30412325/hoes-does-spark-schedule-a-join/30490619#30490619>
 .

//1 Filter actions
 > JavaRDD actionRdd = RDD2.filter(f->….); //300GB

//2 Filter users & Broadcast
> JavaRDD userRdd =  RDD1.filter(f->…); //1GB
> Map m = userRdd.keyBy(f->g.getUid()).collectAsMap();
> Broadcast<Map> userMap = sparkCtx.broadcast(m);//1GB

//3 Filter locations & Broadcast
> JavaPairRDD locations = RDD3.filter(f->….).keyBy(f->g.getLocationId());
> Broadcast<Map> locationMap = 
> sparkCtx.broadcast(locations.collectAsMap());//1GB

//4 Process using data from all 3 data sets
> actionRdd.map(f-> {
User u1 = userMap.value.get( f.getUid1());
User u2 = userMap.value.get( f.getUid2());
Location l= locationMap.value.get(u.getLocationId();
Object result = method(f,u1,u2,l);//method implementation not important, but 
requires all 3 objects
return result;
          });


From: Marcin Tustin [mailto:mtus...@handybook.com]
Sent: 28 April 2016 12:27
To: Deligiannis, Ioannis (UK)
Cc: dev@spark.apache.org
Subject: Re: RDD.broadcast

I don't know what your notation really means. I'm very much unclear on why you 
can't use the filter method for 1. If you're talking about splitting/bucketing 
rather filtering as such I think that is a specific lacuna in spark's Api.

I've generally found the join api to be entirely adequate for my needs, so I 
don't really have a comment on 2.

On Thursday, April 28, 2016, 
<ioannis.deligian...@nomura.com<mailto:ioannis.deligian...@nomura.com>> wrote:
One example pattern we have it doing joins or filters based on two datasets. 
E.g.

1         Filter –multiple- RddB for a given set extracted from RddA (keyword 
here is multiple times)

a.       RddA -> keyBy -> distinct -> collect() to Set A;

b.      RddB -> Filter using Set A;

2         “Join” using composition on executor (again multiple times)

a.       RddA -> filter by XYZ -> keyBy join attribute -> collectAsMap 
->Broadcast MapA;

b.      RddB -> map (Broadcast<Map<K,V>> MapA;


The first use case might not be that common, but joining a large RDD with a 
small (reference) RDD is quite common and much faster than using “join” method.


From: Marcin Tustin 
[mailto:mtus...@handybook.com<javascript:_e(%7B%7D,'cvml','mtus...@handybook.com');>]
Sent: 28 April 2016 12:08
To: Deligiannis, Ioannis (UK)
Cc: dev@spark.apache.org<javascript:_e(%7B%7D,'cvml','dev@spark.apache.org');>
Subject: Re: RDD.broadcast

Why would you ever need to do this? I'm genuinely curious. I view collects as 
being solely for interactive work.

On Thursday, April 28, 2016, 
<ioannis.deligian...@nomura.com<javascript:_e(%7B%7D,'cvml','ioannis.deligian...@nomura.com');>>
 wrote:
Hi,

It is a common pattern to process an RDD, collect (typically a subset) to the 
driver and then broadcast back.

Adding an RDD method that can do that using the torrent broadcast mechanics 
would be much more efficient. In addition, it would not require the Driver to 
also utilize its Heap holding this broadcast.

I guess this can become complicated if the resulting broadcast is required to 
keep lineage information, but assuming a torrent distribution, once the 
broadcast is synced then lineage would not be required. I’d also expect the 
call to rdd.brodcast to be an action that eagerly distributes the broadcast and 
returns when the operation has succeeded.

Is this something that could be implemented or are there any reasons that 
prohibits this?

Thanks
Ioannis

This e-mail (including any attachments) is private and confidential, may 
contain proprietary or privileged information and is intended for the named 
recipient(s) only. Unintended recipients are strictly prohibited from taking 
action on the basis of information in this e-mail and must contact the sender 
immediately, delete this e-mail (and all attachments) and destroy any hard 
copies. Nomura will not accept responsibility or liability for the accuracy or 
completeness of, or the presence of any virus or disabling code in, this 
e-mail. If verification is sought please request a hard copy. Any reference to 
the terms of executed transactions should be treated as preliminary only and 
subject to formal written confirmation by Nomura. Nomura reserves the right to 
retain, monitor and intercept e-mail communications through its networks 
(subject to and in accordance with applicable laws). No confidentiality or 
privilege is waived or lost by Nomura by any mistransmission of this e-mail. 
Any reference to "Nomura" is a reference to any entity in the Nomura Holdings, 
Inc. group. Please read our Electronic Communications Legal Notice which forms 
part of this e-mail: 
http://www.Nomura.com/email_disclaimer.htm<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.Nomura.com_email-5Fdisclaimer.htm&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=GAA5LZhuKEWXxozKzXPhWAYY4BSTpcXaf2lFg5JSPB0&s=SLnOgTBJ2zAlhtvjcFRXfqUArds-4HSAZCgFXLgMCVY&e=>

Want to work at Handy? Check out our culture deck and open 
roles<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.handy.com_careers&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=GAA5LZhuKEWXxozKzXPhWAYY4BSTpcXaf2lFg5JSPB0&s=WgDnCrSGv_qt66f2cabjugmMGU46gc5rSkt_gm7lEkQ&e=>
Latest 
news<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.handy.com_press&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=GAA5LZhuKEWXxozKzXPhWAYY4BSTpcXaf2lFg5JSPB0&s=rfQxr8cDwVFK7Mql1_HdnvqAmXeiOHZgnjNtKXGn_Kg&e=>
 at Handy
Handy just raised 
$50m<https://urldefense.proofpoint.com/v2/url?u=http-3A__venturebeat.com_2015_11_02_on-2Ddemand-2Dhome-2Dservice-2Dhandy-2Draises-2D50m-2Din-2Dround-2Dled-2Dby-2Dfidelity_&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=GAA5LZhuKEWXxozKzXPhWAYY4BSTpcXaf2lFg5JSPB0&s=RbQTDcalISb9w2WMxzXmRgR1mr7QiCaqpD2bLAkt-z4&e=>
 led by Fidelity

[Image removed by sender.]

This e-mail (including any attachments) is private and confidential, may 
contain proprietary or privileged information and is intended for the named 
recipient(s) only. Unintended recipients are strictly prohibited from taking 
action on the basis of information in this e-mail and must contact the sender 
immediately, delete this e-mail (and all attachments) and destroy any hard 
copies. Nomura will not accept responsibility or liability for the accuracy or 
completeness of, or the presence of any virus or disabling code in, this 
e-mail. If verification is sought please request a hard copy. Any reference to 
the terms of executed transactions should be treated as preliminary only and 
subject to formal written confirmation by Nomura. Nomura reserves the right to 
retain, monitor and intercept e-mail communications through its networks 
(subject to and in accordance with applicable laws). No confidentiality or 
privilege is waived or lost by Nomura by any mistransmission of this e-mail. 
Any reference to "Nomura" is a reference to any entity in the Nomura Holdings, 
Inc. group. Please read our Electronic Communications Legal Notice which forms 
part of this e-mail: 
http://www.Nomura.com/email_disclaimer.htm<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.Nomura.com_email-5Fdisclaimer.htm&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=3sSvB-R66BWR0E56L12fHFtbHcZLeqp2hdnrMncx1-U&s=zRDuW7ua96biT1hpVLmf9v2kyB0mV0SzsqtLLTbsRl0&e=>

Want to work at Handy? Check out our culture deck and open 
roles<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.handy.com_careers&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=3sSvB-R66BWR0E56L12fHFtbHcZLeqp2hdnrMncx1-U&s=x2weVTVWoKPax6nWFBzezd9rEyFBLCr1tgL0NYQ8CkY&e=>
Latest 
news<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.handy.com_press&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=3sSvB-R66BWR0E56L12fHFtbHcZLeqp2hdnrMncx1-U&s=EX4TthvT0szzJSv8UOAPWUBq0vQMseqWuXColEdW9jw&e=>
 at Handy
Handy just raised 
$50m<https://urldefense.proofpoint.com/v2/url?u=http-3A__venturebeat.com_2015_11_02_on-2Ddemand-2Dhome-2Dservice-2Dhandy-2Draises-2D50m-2Din-2Dround-2Dled-2Dby-2Dfidelity_&d=CwMFaQ&c=dCBwIlVXJsYZrY6gpNt0LA&r=B8E4n9FrSS85mPCi6Mfs7cyEPQnVrpcQ1zeB-JKws6A&m=3sSvB-R66BWR0E56L12fHFtbHcZLeqp2hdnrMncx1-U&s=vIRLq79Lr1dBdabX-d9eAi1uJsbpRVx50slHOT11RoQ&e=>
 led by Fidelity

[http://marketing-email-assets.handybook.com/smalllogo.png]


This e-mail (including any attachments) is private and confidential, may 
contain proprietary or privileged information and is intended for the named 
recipient(s) only. Unintended recipients are strictly prohibited from taking 
action on the basis of information in this e-mail and must contact the sender 
immediately, delete this e-mail (and all attachments) and destroy any hard 
copies. Nomura will not accept responsibility or liability for the accuracy or 
completeness of, or the presence of any virus or disabling code in, this 
e-mail. If verification is sought please request a hard copy. Any reference to 
the terms of executed transactions should be treated as preliminary only and 
subject to formal written confirmation by Nomura. Nomura reserves the right to 
retain, monitor and intercept e-mail communications through its networks 
(subject to and in accordance with applicable laws). No confidentiality or 
privilege is waived or lost by Nomura by any mistransmission of this e-mail. 
Any reference to "Nomura" is a reference to any entity in the Nomura Holdings, 
Inc. group. Please read our Electronic Communications Legal Notice which forms 
part of this e-mail: http://www.Nomura.com/email_disclaimer.htm

Reply via email to