我在scala中使用spark流,我正在使用流式Twitter数据。我有以下代码:
val ssc = new StreamingContext(new SparkConf(), Seconds(5))
val tweets = TwitterUtils.createStream(ssc, None)
val user = tweets.map(x=> x.getText())
val lang = tweets.map(x=> x.getLang())
我收到以下错误:
[error] /home/user/Lab1.1/Twitterstats.scala:103: value getLang is not a member of twitter4j.Status
[error] val lang = tweets.map(x=> x.getLang())
[error] ^
[error] one error found
上述代码有什么问题?有人可以帮忙。
答案 0 :(得分:3)
spark-streaming-twitter 使用 Twitter4j 。仅在 Twitter4J 版本 3.0.6 后才支持getLang()
。如果您使用 1.5.2 (或更低版本) spark-streaming-twitter 版本,则无法拨打getLang()
,因为它使用版本 twitter4j 的 3.0.3 。由于支持 1.6.0 版本 4.0.4 以及getLang()
功能。
因此,您可以将 spark-streaming-twitter 升级为 1.6.0 或更高版本。或者您可以使用其他第三方库来检测推文的语言。
(可能duplicate)