J'essaie de diffuser des données Twitter en utilisant spark scala code.Je suis capable d'aller chercher des données et créer un dataframe et le voir.Mais en essayant d'extraire status.getPlace.getCountry() je reçois un java.lang.NullPointerException.Twitter streaming en utilisant Spark
version Spark: 2.0.0, la version Scala: 2.11.8
essayées avec si les conditions, vérifier la valeur etc, mais en vain.
code:
val spark = SparkSession.builder().appName("Twitter Spark Example").getOrCreate()
val ssc = new StreamingContext(spark.sparkContext,Seconds(5))
val filters:Seq[String] = Seq("hadoop")
val cb = new ConfigurationBuilder()
.setOAuthConsumerKey("******")
.setOAuthConsumerSecret("******")
.setOAuthAccessToken("********")
.setOAuthAccessTokenSecret("******").build()
val twitter_auth = new TwitterFactory(cb)
val a = new OAuthAuthorization(cb)
val atwitter:Option[twitter4j.auth.Authorization] = Some(twitter_auth.getInstance(a).getAuthorization())
val tweetsdstream = TwitterUtils.createStream(ssc, atwitter, filters, StorageLevel.MEMORY_AND_DISK_SER_2)
val data = tweetsdstream.map {status =>
val places = status.getPlace
val id = status.getUser.getId
val date = status.getUser.getCreatedAt.toString()
val user = status.getUser.getName()
val place = places.getCountry()
(id,date,user,place)
}
data.foreachRDD{rdd =>
import spark.implicits._
rdd.toDF("id","date","user","place").show()
}
ssc.start()
ssc.awaitTermination()
est-il des restrictions sur l'accès aux informations de localisation de Twitter? Toutes les suggestions seraient utiles.
Merci
En fait, la plupart du temps 'getPlace' et' getCountry' contient la valeur null, vous pouvez essayer d'utiliser geoLocation à la place –