我是apache-spark的新手,我想知道每隔10秒钟在Twitter上发布的推文总数。我写了一个小片段来获取twitter中的标签。现在我需要找出twitter中所有推文的总数。
请帮我解决此问题。
import java.io._
import org.apache.spark.streaming.{Seconds, StreamingContext}
import StreamingContext._
import org.apache.spark.SparkContext._
import org.apache.spark.streaming.twitter._
object TwitterPopularTags {
def main(args: Array[String]) {
val (master, filters) = (args(0), args.slice(5, args.length))
// Twitter Authentication credentials
System.setProperty("twitter4j.oauth.consumerKey", "xxxx")
System.setProperty("twitter4j.oauth.consumerSecret","xxxx")
System.setProperty("twitter4j.oauth.accessToken", "xxxx")
System.setProperty("twitter4j.oauth.accessTokenSecret", "xxxx")
val ssc = new StreamingContext(master, "TwitterPopularTags",Seconds(10),
System.getenv("SPARK_HOME"), StreamingContext.jarOfClass(this.getClass))
val tweets = TwitterUtils.createStream(ssc, None)
val statuses = tweets.map(status => status.getText())
val words = statuses.flatMap(status => status.split(" "))
val hashTags = words.filter(word => word.startsWith("#"))
val tagCounts = hashTags.window(Seconds(100), Seconds(10)).countByValue()
tagCounts.print()
}
答案 0 :(得分:0)
RDD tweets
包含收到的所有推文。
tweets.count
给出了总数。
答案 1 :(得分:0)
您忘记使用ssc.start