在尝试使用Twitter进行火花流时获取NPE

时间:2016-04-10 22:49:15

标签: spark-streaming

我是SparkStreaming的新手,在尝试提交Spark-Twitter流媒体作业时,收到以下错误:

val Array(consumerKey, consumerSecret, accessToken, accessTokenSecret) = args.take(4)
val filters = args.takeRight(args.length - 4)

System.setProperty("twitter4j.oauth.consumerKey", consumerKey)
System.setProperty("twitter4j.oauth.consumerSecret", consumerSecret)
System.setProperty("twitter4j.oauth.accessToken", accessToken)
System.setProperty("twitter4j.oauth.accessTokenSecret", accessTokenSecret)
val sparkConf = new SparkConf().setAppName("TwitterPopularTags")
val ssc = new StreamingContext(sparkConf,  Seconds(2))
val stream = TwitterUtils.createStream(ssc,None, filters)
val hashTags = stream.flatMap(status => status.getText.split(" ").filter(_.startsWith("#")))
val topCounts60 = hashTags.map((_, 1)).reduceByKeyAndWindow(_ + _, Seconds(60))
                 .map{case (topic, count) => (count, topic)}
                 .transform(_.sortByKey(false))
topCounts60.foreachRDD(rdd => {
  val topList = rdd.take(10)
  println("\nPopular topics in last 60 seconds (%s total):".format(rdd.count()))
  topList.foreach{case (count, tag) => println("%s (%s tweets)".format(tag, count))}
})
ssc.start()
ssc.awaitTermination()

以下是代码段:

GetString

为什么我得到这个NPE的任何线索?有关如何进一步调试的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

调试了一下后,在我的spark-submit脚本中,Job jar文件被添加到--jar列表并收到此错误。但这似乎是spark-core软件包中的一个错误。