在某些情况下,我们不希望在某些数据到达后立即处理,但会在一段时间后处理。
我的问题:有没有办法用Spark Streaming实现库的概念?!
我的意思是如何在结构(称为库)中临时存储一些DStream数据(基于条件)并稍后处理它们!
答案 0 :(得分:0)
您可以使用collect函数来收集数据集: 例如: 收集推文数据集:
val tweetStream = TwitterUtils.createStream(ssc, Utils.getAuth)
.map(gson.toJson(_))
tweetStream.foreachRDD((rdd, time) => {
val count = rdd.count()
if (count > 0) {
val outputRDD = rdd.repartition(partitionsEachInterval)
outputRDD.saveAsTextFile(
outputDirectory + "/tweets_" + time.milliseconds.toString)
numTweetsCollected += count
if (numTweetsCollected > numTweetsToCollect) {
System.exit(0)
}
}
})