2016-09-30 13 views
5

sbtパッケージを使用してsparkストリーミングアプリケーションを構築しようとしていますが、このエラーの原因がわかりません。scala.reflect.internal.MissingRequirementError:オブジェクトjava.lang.Objectコンパイラミラーのオブジェクトが見つかりません

が、これはエラーのいくつかのこと

scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40)

であり、ここで私は、この問題を解決し、コード

import org.apache.spark.SparkContext 
import org.apache.spark._ 
import org.apache.spark.streaming._ 
import org.apache.spark.streaming.twitter._ 
import twitter4j.Status 
object TrendingHashTags { 
def main(args: Array[String]): Unit = { 
val Array(consumerKey, consumerSecret, accessToken, accessTokenSecret, 
lang, batchInterval, minThreshold, showCount) = args.take(8) 
val filters = args.takeRight(args.length - 8) 
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 conf = new SparkConf().setAppName("TrendingHashTags") 
val ssc = new StreamingContext(conf, Seconds(batchInterval.toInt)) 
val tweets = TwitterUtils.createStream(ssc, None, filters) 
val tweetsFilteredByLang = tweets.filter{tweet => tweet.getLang() == lang} 
val statuses = tweetsFilteredByLang.map{ tweet => tweet.getText()} 
val words = statuses.flatMap{status => status.split("""\s+""")} 
val hashTags = words.filter{word => word.startsWith("#")} 
val hashTagPairs = hashTags.map{hashtag => (hashtag, 1)} 
val tagsWithCounts = hashTagPairs.updateStateByKey(
(counts: Seq[Int], prevCount: Option[Int]) => 
prevCount.map{c => c + counts.sum}.orElse{Some(counts.sum)} 
) 
val topHashTags = tagsWithCounts.filter{ case(t, c) => 
c > minThreshold.toInt 
} 
val sortedTopHashTags = topHashTags.transform{ rdd => 
rdd.sortBy({case(w, c) => c}, false) 
} 
sortedTopHashTags.print(showCount.toInt) 
ssc.start() 
ssc.awaitTermination() 
} 
} 

答えて

11

ですが、私は私がScalaのバージョンと互換性がありませんというJavaの9を使用することを発見しました私はJava 9からJava 8に移行しました。

関連する問題