2016-07-18 5 views
0

私はa、b、cと呼ばれる3つの企業を持っています。それらは1つのスパークストリーミングアプリケーションで処理されます。Spark Streamingで変数を保存して使用する方法は?

すべての企業がb1b2に依存し、1つのバッチ処理ですべての事業を終えたとき、私は一度b1b2の変更値を必要とします。つまり、私はb1b2の値を最後の1つのビジネスが終了する前に変更する必要があります。おそらく最後の1つは、またはbまたはcです。どうやってするの?

object Variables extends Serializable{ 
    var b1 = true 
    var b2 = false 
} 


object test{ 
    def main(args: Array[String]){ 

     val sc = new SparkContext 
     val sec = 3 

     val ssc = new StreamingContext(sc, Seconds(sec)) 
     val input = ssc.socketTextStream("192.168.41.55", 12345) 

     // a business 
     input.transform(/*I need use b1,b2 in here*/).saveAsTextFiles("") 

     // b business 
     input.transform(/*I need use b1,b2 in here*/).saveAsTextFiles("") 

     // c business 
     input.transform(/*I need use b1,b2 in here*/).saveAsTextFiles("") 

     ssc.start() 
     ssc.awaitTermination() 
    } 
} 

答えて

0

あなたがあなたのスパーク蒸しジョブにチェックポイントを使用している場合、あなたはなまけこれらの変数see example here

を初期化する必要がスパーク variable broadcastingを使用する必要があるノード間で共有される変数が必要な場合は、
関連する問題