未找到推特流
twitterStream not found
我正在尝试编译我的第一个 Scala 程序,我正在使用 twitterStream 获取推文,这是我的代码片段:
import org.apache.spark._
import org.apache.spark.SparkContext._
import org.apache.spark.streaming._
import org.apache.spark.streaming.twitter._
import org.apache.spark.streaming.StreamingContext._
import TutorialHelper._
object Tutorial {
def main(args: Array[String]) {
// Location of the Spark directory
val sparkHome = "/home/shaza90/spark-1.1.0"
// URL of the Spark cluster
val sparkUrl = TutorialHelper.getSparkUrl()
// Location of the required JAR files
val jarFile = "target/scala-2.10/tutorial_2.10-0.1-SNAPSHOT.jar"
// HDFS directory for checkpointing
val checkpointDir = TutorialHelper.getHdfsUrl() + "/checkpoint/"
// Configure Twitter credentials using twitter.txt
TutorialHelper.configureTwitterCredentials()
val ssc = new StreamingContext(sparkUrl, "Tutorial", Seconds(1), sparkHome, Seq(jarFile))
val tweets = ssc.twitterStream()
val statuses = tweets.map(status => status.getText())
statuses.print()
ssc.checkpoint(checkpointDir)
ssc.start()
}
}
编译时我收到此错误消息:
value twitterStream is not a member of org.apache.spark.streaming.StreamingContext
你知道我是否遗漏了任何库或依赖项吗?
在这种情况下,您需要推文流。我们都知道Sparks提供Streams
。现在,让我们检查一下 Spark 本身是否提供了专门用于与 Twitter 交互的东西。
打开 Spark API-docs -> http://spark.apache.org/docs/1.2.0/api/scala/index.html#package
现在搜索 twitter
和 bingo...包 org.apache.spark.streaming
中有一个叫做 TwitterUtils
的东西。现在因为它被称为 TwitterUtils
并且在包 org.apache.spark.streaming
中,我认为它将提供帮助者从 twitter API 的创建流。
现在让我们点击 TwitterUtils
并转到 -> http://spark.apache.org/docs/1.2.0/api/scala/index.html#org.apache.spark.streaming.dstream.ReceiverInputDStream
是的...它有一个具有以下签名的方法
def createStream(
ssc: StreamingContext,
twitterAuth: Option[Authorization],
filters: Seq[String] = Nil,
storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2
): ReceiverInputDStream[Status]
它 returns 一个 ReceiverInputDStream[ Status ]
其中 Status
是 twitter4j.Status
.
参数进一步说明
ssc
StreamingContext 对象
twitterAuth
Twitter4J
身份验证,或 None
使用 Twitter4J 默认的 OAuth
授权;这使用 system properties
twitter4j.oauth.consumerKey
、twitter4j.oauth.consumerSecret
、twitter4j.oauth.accessToken
和 twitter4j.oauth.accessTokenSecret
过滤器
一组过滤字符串以仅获取匹配它们的推文
存储级别
用于存储接收到的对象的存储级别
查看... API 文档很简单。我相信,现在您应该更有动力阅读 API 文档。
并且...这意味着您还需要稍微了解一下(至少是入门部分)twitter4j
文档。
NOTE :: This answer is specifically written to explain "Why not to shy
away from API docs ?". And was written after careful thoughts. So
please, do not edit unless your edit makes some significant
contribution.
我正在尝试编译我的第一个 Scala 程序,我正在使用 twitterStream 获取推文,这是我的代码片段:
import org.apache.spark._
import org.apache.spark.SparkContext._
import org.apache.spark.streaming._
import org.apache.spark.streaming.twitter._
import org.apache.spark.streaming.StreamingContext._
import TutorialHelper._
object Tutorial {
def main(args: Array[String]) {
// Location of the Spark directory
val sparkHome = "/home/shaza90/spark-1.1.0"
// URL of the Spark cluster
val sparkUrl = TutorialHelper.getSparkUrl()
// Location of the required JAR files
val jarFile = "target/scala-2.10/tutorial_2.10-0.1-SNAPSHOT.jar"
// HDFS directory for checkpointing
val checkpointDir = TutorialHelper.getHdfsUrl() + "/checkpoint/"
// Configure Twitter credentials using twitter.txt
TutorialHelper.configureTwitterCredentials()
val ssc = new StreamingContext(sparkUrl, "Tutorial", Seconds(1), sparkHome, Seq(jarFile))
val tweets = ssc.twitterStream()
val statuses = tweets.map(status => status.getText())
statuses.print()
ssc.checkpoint(checkpointDir)
ssc.start()
}
}
编译时我收到此错误消息:
value twitterStream is not a member of org.apache.spark.streaming.StreamingContext
你知道我是否遗漏了任何库或依赖项吗?
在这种情况下,您需要推文流。我们都知道Sparks提供Streams
。现在,让我们检查一下 Spark 本身是否提供了专门用于与 Twitter 交互的东西。
打开 Spark API-docs -> http://spark.apache.org/docs/1.2.0/api/scala/index.html#package
现在搜索 twitter
和 bingo...包 org.apache.spark.streaming
中有一个叫做 TwitterUtils
的东西。现在因为它被称为 TwitterUtils
并且在包 org.apache.spark.streaming
中,我认为它将提供帮助者从 twitter API 的创建流。
现在让我们点击 TwitterUtils
并转到 -> http://spark.apache.org/docs/1.2.0/api/scala/index.html#org.apache.spark.streaming.dstream.ReceiverInputDStream
是的...它有一个具有以下签名的方法
def createStream(
ssc: StreamingContext,
twitterAuth: Option[Authorization],
filters: Seq[String] = Nil,
storageLevel: StorageLevel = StorageLevel.MEMORY_AND_DISK_SER_2
): ReceiverInputDStream[Status]
它 returns 一个 ReceiverInputDStream[ Status ]
其中 Status
是 twitter4j.Status
.
参数进一步说明
ssc
StreamingContext 对象
twitterAuth
Twitter4J
身份验证,或 None
使用 Twitter4J 默认的 OAuth
授权;这使用 system properties
twitter4j.oauth.consumerKey
、twitter4j.oauth.consumerSecret
、twitter4j.oauth.accessToken
和 twitter4j.oauth.accessTokenSecret
过滤器
一组过滤字符串以仅获取匹配它们的推文
存储级别
用于存储接收到的对象的存储级别
查看... API 文档很简单。我相信,现在您应该更有动力阅读 API 文档。
并且...这意味着您还需要稍微了解一下(至少是入门部分)twitter4j
文档。
NOTE :: This answer is specifically written to explain "Why not to shy away from API docs ?". And was written after careful thoughts. So please, do not edit unless your edit makes some significant contribution.