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,  )