使用apache spark scala获取twitter中的推文总数

时间:2014-11-14 04:52:10

标签: scala twitter apache-spark

我是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()

}

2 个答案:

答案 0 :(得分:0)

RDD tweets包含收到的所有推文。

tweets.count给出了总数。

答案 1 :(得分:0)

您忘记使用ssc.start

启动流式处理