首页 > 解决方案 > Apache Spark 2.3.1 - twitter 不是包 org.apache.spark.streaming 的成员

问题描述

首先,我一直在寻找这个问题一段时间,我可以看到存在其他解决方案,但是对于 Apache Spark 版本 2.3.1 没有。

简而言之,我正在尝试创建一个使用 bahir 在 spark 中执行分析 twitter 消息的应用程序。

但是,我使用的是 Apache Spark 版本 2.3.1,所以我找到了2.3.0-SNAPSHOT

但是当我尝试使用bin/spark-shell --packages org.apache.bahir:spark-streaming-twitter_2.11:2.3.0-SNAPSHOT它时,从我本地的 spark-shell 中找不到它:

:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS Exception in thread "main" java.lang.RuntimeException: [unresolved dependency: org.apache.bahir#spark-streaming-twitter_2.11;2.3.0-SNAPSHOT: not found]

我可能是一个愚蠢的假设,但我认为 2.3.0 可能适用于 2.3.1。

我可以获取2.2.1版本并且 twitter4j 似乎可以工作,但是我仍然遇到实际streaming.twitter_使用 Spark 2.3.1 的问题。从我当地的火花壳:

scala> import org.apache.spark.streaming.twitter._ <console>:23: error: object twitter is not a member of package org.apache.spark.streaming import org.apache.spark.streaming.twitter._
                                     ^

很高兴知道是否有人知道它是否可用于 Apache Spark 2.3.1?

还是我只是被迫降级我的 Spark 版本以使其正常工作?

我在一个名为 Zeppelin 的笔记本中执行此操作,但我也尝试在 Zeppelin 之外执行此操作,因此似乎与我正在使用的笔记本没有任何关系。

感谢您的任何见解。

标签: twitterspark-streamingapache-bahirspark-shell

解决方案


我遇到了同样的问题。我无法降低火花,因为我需要 2.3 和另一个氦气。所以我要尝试bahir 的依赖

<dependency>
    <groupId>org.apache.bahir</groupId>
    <artifactId>spark-streaming-twitter_2.11</artifactId>
    <version>2.3.0</version>
</dependency>

我会告诉你,如果它有效...

编辑:它确实有效。

%spark2.dep
z.reset()
z.addRepo("MavenCentral").url("https://mvnrepository.com/")
z.load("org.apache.bahir:spark-streaming-twitter_2.11:2.3.0")

它解决了不存在的新 Twitter 库的问题,还解决了“新火花”中“旧火花”中缺少类的问题。

我能够使用 javascript 传单地图和 spark 2.3 sparkstreaming 运行 sum 示例 :)


推荐阅读