如何按用户过滤TwitterInputDStream结果

时间:2016-02-01 05:26:11

标签: scala twitter apache-spark streaming

我正在尝试创建一个Scala + Spark应用程序,该应用程序专门侦听我在过滤器数组中定义的特定用户的推文。目前,编辑filters数组只会更改它正在接收的推文的文本。我想这样做,除了用户。

我最初使用

    val statuses = TwitterUtils.createStream(ssc, None, filter)

然而,为了获得我的流,在另一篇文章中,它使用TwitterInputDStream推荐。我刚刚实现了这一点,但我不知道如何根据用户进行过滤。

任何帮助都非常感谢,因为这是我已经挣扎了很长一段时间的事情。

到目前为止我的代码:

val config = new twitter4j.conf.ConfigurationBuilder()
  .setOAuthConsumerKey("2pzru6Cd8aRumYHUumoCiKwYS")
    .setOAuthConsumerSecret("rKKQfISDzk715OOKS7wvGkSKdkqGsLFOdTrZ9QdJOfAjMXekNB")
    .setOAuthAccessToken("962554652-SU0aBc8Iyukka1gFJQY9Ux5XczDXSgczRpuih3ml")
    .setOAuthAccessTokenSecret("k0DWDIGeJ6u2ijYJeIv6dfCuCmTPIZT8xPJ5AG4P9PV72")
    .build
val twitter_auth = new TwitterFactory(config)
val a = new OAuthAuthorization(config)
val atwitter = twitter_auth.getInstance(a).getAuthorization()
//val auth = new Option[Authorization] {}
val auth = Option(atwitter)

val sparkConf = new SparkConf().setAppName("Main2")
  .setMaster("local[4]")
val ssc = new StreamingContext(sparkConf, Seconds(2))
val test = new StorageLevel()

val twitter = new TwitterInputDStream(ssc, auth, filters, test )
val rec = twitter.getReceiver()
twitter.print()

谢谢!

0 个答案:

没有答案