Ответ 1
TL;DR;
Класс org.apache.spark.Logging
доступен в версии Spark 1.5.2
или ниже (хотя я не тестировал все более низкие версии), но недоступен в версиях выше чем то же самое.
Все сводится к использованию несовместимой версии
Apache Spark
:
1. Попробуйте import org.apache.spark.Logging
на Spark 2.0.0
:
[email protected]:~$ /opt/spark/bin/spark-shell Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.0.0 /_/ Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101) scala> import org.apache.spark.Logging <console>:23: error: object Logging is not a member of package org.apache.spark import org.apache.spark.Logging ^
Класс org.apache.spark.Logging
не найден.
2. Попробуйте import org.apache.spark.Logging
на Spark 1.6.2
:
(то же, что и выше, например, класс org.apache.spark.Logging находится не.)
3. Попробуйте import org.apache.spark.Logging
на Spark 1.5.2
:
[email protected]:~$ /opt/spark-1.5.2-bin-hadoop2.6/bin/spark-shell Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 1.5.2 /_/ Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101) scala> import org.apache.spark.Logging import org.apache.spark.Logging
ДА! Он доступен и успешно импортирован
Как видите, org.apache.spark.Logging
, который требуется Spark-Streaming-Twitter, доступен в версии Spark 1.5.2 или ниже, поэтому я рекомендовал бы использовать 1.5.2
или более низкую версию искры.
Следовательно, вы должны заменить свои зависимости maven следующим образом:
(Предположим, что вы используете Scala 2.11.x
)
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-twitter_2.11</artifactId>
<version>1.6.2</version>
</dependency>
Обратите внимание, что artifactId
: 2.11
относится к версии scala
и version
: 1.5.2
или 1.6.2
относится к версии библиотеки (искровой или искровой поток-твиттер).