scala中Spark Streaming代码出错

时间:2016-10-06 09:49:14

标签: scala apache-spark spark-streaming

我在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

上述代码有什么问题?有人可以帮忙。

1 个答案:

答案 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