Sparkのブロードキャスト変数の簡単な使用
659 ワード
需要:2つのRDDのjoin操作をして、ブロードキャスト変数で実現します.
出力結果:
object broadcastApp{
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
val sc = new SparkContext(conf)
val rdd1 = sc.parallelize(Array(("10","AA"),("11","BB"))).collectAsMap()
val rdd2 = sc.parallelize(Array(("10"," "),("11"," "),("12"," ")))
val rdd1_bc = sc.broadcast(rdd1) // rdd1 Work Node
rdd2.map(x=>(x._1,x)).mapPartitions(x => {
val bc_value = rdd1_bc.value //
for((k,v)
出力結果:
(10,AA, )
(11,BB, )