正如spark流文档所说:
推特:Spark Streaming的TwitterUtils使用Twitter4j 3.0.3使用Twitter的Streaming API获取推特的公共流。
因为我需要使用一些这个版本不支持的函数,比如getLang(),所以我想升级这个版本。
到目前为止,我已经在我的 eclipse 项目中导入了 twitter4J 版本 4.0.4 jar,但它仍然只能识别 3.0.3 版本。
救命!
您需要排除spack-stream ch-twitter附带的twitter4j依赖项,并显式添加您自己的twitter4j版本。
在sbt中是这样的:
libraryDependencies += "org.apache.spark" % "spark-streaming-twitter_2.10" % "1.6.1" exclude("org.twitter4j", "twitter4j")
libraryDependencies += "org.twitter4j" % "twitter4j" % "4.0.4"
这通常可能会导致麻烦,因为 API 可能会在主要版本之间更改,但我记得出于同样的原因(语言支持)做了类似的事情。