Scala2.12で使用するTwitterAPI

Aug 26 2020

Scala 2.12(SBTで構築)を使用してSpark(3.0.0)ストリーミングアプリケーションを構築しています。これを行うためのすべてのライブラリがScala <= 2.11用である場合、TwitterAPIからツイートを取得するにはどうすればよいですか。

編集:ライブラリを使用してビルドしようとしたときに得られるサンプル出力:

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

回答

TomerShetah Oct 07 2020 at 09:25

spark-streaming-twitterScala 2.12にインポートするには、インポートでScalaのバージョンを指定する必要があります。

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"

この呼び出しは、アーティファクトからscala2.11バージョンをフェッチすることを強制します。おそらく試みられたインポートは次のとおりです。

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

あなたのscalaビルドバージョンが2.12である場合のsbt検索はspark-streaming-twitter_2.12、mavenatifactoryに存在します。

そうは言っても、そのようなことをする前に、scalaリリースのバイナリ互換性を理解する必要があります。

このインポートの後、次のように呼び出すことができます。

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