API Twitter da utilizzare con Scala 2.12

Aug 26 2020

Sto costruendo un'applicazione di streaming Spark (3.0.0) con Scala 2.12 (costruita con SBT). Come ottengo i tweet dall'API di Twitter, dato che tutte le librerie per farlo sono per Scala <= 2.11.

EDIT: output di esempio che ottengo quando provo a compilare con le librerie:

object twitter is not a member of package org.apache.spark.streaming
[error] import org.apache.spark.streaming.twitter.TwitterUtils

Risposte

TomerShetah Oct 07 2020 at 09:25

Per importare spark-streaming-twitterin Scala 2.12, devi specificare la versione di Scala nell'importazione:

resolvers += "twitter_2" at "https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-twitter"
libraryDependencies += "org.apache.spark" % "spark-streaming-twitter_2.11" % "1.6.3"

Questa chiamata forza il recupero della versione in scala 2.11 da artifactory. L'importazione probabilmente tentata è stata:

libraryDependencies += "org.apache.spark" %% "spark-streaming-twitter" % "1.6.3"

La sbtricerca spark-streaming-twitter_2.12nel caso in cui la tua versione di scala build sia 2.12, che esiste in maven atifactory .

Detto questo, è necessario comprendere la compatibilità binaria delle versioni di scala , prima di fare una cosa simile.

Dopo questa importazione puoi chiamare:

import org.apache.spark.streaming.twitter.TwitterUtils