将RDD转换为DStream以在Apache Spark MlLib中应用StreamingKMeans算法

时间:2016-06-29 05:11:27

标签: scala apache-spark k-means apache-spark-mllib

我有我的scala代码用于KDD杯数据集的异常检测。 代码位于https://github.com/prashantprakash/KDDDataResearch/blob/master/Code/approach1Plus2/src/main/scala/PCA.scala

我想通过使用来自MlLib的StreamingKMeans算法尝试一种新技术,并且只要上面代码中的第288行为真,就更新我的StreamingKmeans模型" if(dist< threshold){&#34 ;;即当测试点被归类为正常时,使用新的"正常数据点"更新KMeans模型。

我看到StreamingKmeans以DStreams的形式获取数据。 "请帮助将现有的RDD转换为Dstreams。"

我找到了一个链接http://apache-spark-user-list.1001560.n3.nabble.com/RDD-to-DStream-td11145.html,但它没有多大帮助。

如果有更好的设计来解决问题,请提供建议。

1 个答案:

答案 0 :(得分:1)

据我所知,RDD无法转换为DStream,因为RDD是数据的集合,而DStream是指传入数据的概念。

如果您想使用StreamingKMeans,请将您组建的数据转换为RDD,然后将其转换为DStream,可能使用KafkaUtils.createDirectStreamssc.textFileStream

希望这有帮助!