2016-10-27 2 views
2

Я написал сценарий SCALA в Ubuntu домой путь как abc.scala и зашиты все значения OAuth из щебет приложения:Спарк, Scala, Streaming Twitter

import org.apache.spark.streaming.{Seconds, StreamingContext} 
import org.apache.spark.SparkContext._ 
import org.apache.spark.streaming.twitter._ 
import org.apache.spark.SparkConf 

System.setProperty("twitter4j.oauth.consumerKey", consumerKey) 
System.setProperty("twitter4j.oauth.consumerSecret", consumerSecret) 
System.setProperty("twitter4j.oauth.accessToken", accessToken) 
System.setProperty("twitter4j.oauth.accessTokenSecret", accessTokenSecret) 

val filters="Raj" 
val sparkConf = new SparkConf().setAppName("TwitterPopularTags").setMaster("local[2]") 
val ssc = new StreamingContext(sparkConf, Seconds(2)) 
val stream = TwitterUtils.createStream(ssc, None, filters) 

я исполню это, как

$Spark_bin-2.7> cat abc.scala | ./spark-shell 

Это работает до StreamingContext. Но когда она достигает TwitterUtils, это дает и ошибка чтения таким образом:

Error: not found: TwitterUtils

Я скачал последнюю искру 2.0.1. Можете ли вы указать настройки или документы шаг за шагом?

+1

Добавили ли вы зависимость для твиттера потоковое? –

+0

У вас есть шаги, которые я могу добавить зависимость? Запуск приложения Spark для чтения Twitter (искра 2.0.1), Scala 2.11.8, Java 8 на Linux (Ubuntu 16.1) дает мне ошибку: это дает и ошибка --- java.lang.NoClassDefFoundError: org/apache/spark/Logging Я пробовал все 4 параметра, фильтры, DISK_ONLY_2 тоже, но он не работает и жалуется на TwitterUtils.createStream() raja @ ubuntu:/usr/local/spark/bin $ cat twitter_script | spark-shell - пакеты org.apache.spark: spark-streaming-twitter_2.11: 1.6.1 – user3485352

ответ

1

Добавить org.apache.spark: искровой-потоковый-twitter_2.11: 1.6.1 с искровой скорлупу как

$Spark_bin-2.7> cat abc.scala | ./spark-shell --packages org.apache.spark:spark-streaming-twitter_2.11:1.6.1 

Используйте этот подход

import org.apache.spark.streaming.{Seconds, StreamingContext} 
import org.apache.spark.SparkContext._ 
import org.apache.spark.streaming.twitter._ 
import org.apache.spark.SparkConf 

System.setProperty("twitter4j.oauth.consumerKey", consumerKey) 
System.setProperty("twitter4j.oauth.consumerSecret", consumerSecret) 
System.setProperty("twitter4j.oauth.accessToken", accessToken) 
System.setProperty("twitter4j.oauth.accessTokenSecret", accessTokenSecret) 

sc.stop() 
val filters="Raj" 
val sparkConf = new SparkConf().setAppName("TwitterPopularTags").setMaster("local[2]") 
val sc = new SparkContext(sparkConf) 
val ssc = new StreamingContext(sc, Seconds(2)) 
val stream = TwitterUtils.createStream(ssc, None, filters) 
Смежные вопросы