import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.streaming.eventhubs.EventHubsUtils
import sqlContext.implicits._
val ehParams = Map[String, String](
"eventhubs.policyname" -> "Full",
...
)
val ssc = new StreamingContext(sc, Seconds(2))
val stream = EventHubsUtils.createUnionStream(ssc, ehParams)
val cr = stream.window(Seconds(6))
case class Message(msg: String)
stream.map(msg=>Message(new String(msg))).foreachRDD(rdd=>rdd.toDF().registerTempTable("temp"))
stream.print
ssc.start
上面这个开始并运行良好,但我似乎无法阻止它。对%sql show tables的任何调用都将冻结。
如何停止上面的StreamingContext?
答案 0 :(得分:5)
ssc.stop
也会杀死Spark上下文,需要重启解释器。
改为使用ssc.stop(stopSparkContext=false, stopGracefully=true)
。
答案 1 :(得分:1)
ssc.stop
应该停止
关于如何改善与流媒体平台的集成,还有一个持续的discussion in the dev@ mailing list。