2015-09-06 25 views
1

我使用星火蒸從卡夫卡與類似的代碼片段消耗數據沒有數據不想打開/關閉每條記錄的連接。 但是我發現當Kafka中沒有數據時,spark spark仍在處理foreachRdd和foreachPartition。 這導致許多Hbase連接被創建,即使沒有任何數據被使用。我真的不喜歡這樣,當沒有數據從卡夫卡消耗時,我應該如何讓Spark停止這樣做。SparkStreaming繼續處理,即使在卡夫卡

回答

3

只需檢查RDD中是否有項目。所以你的代碼可能是:

rdd.foreachRdd{rdd=> if(rdd.isEmpty == false) rdd.foreachPartition{...}}