Scala Spark and Twitter feed



我正在遵循一些连接到Twitter的代码,然后将该数据写入本地文本文件。这是我的代码:

System.setProperty("twitter4j.oauth.consumerKey", "Mycode - Not going to put real one in for obvious reasons")
System.setProperty("twitter4j.oauth.consumerSecret", "Mycode")
System.setProperty("twitter4j.oauth.accessToken", "Mycode")
System.setProperty("twitter4j.oauth.accessTokenSecret", "Mycode")
  val ssc = new StreamingContext(spark.sparkContext, Seconds(5))
  val twitterStream = TwitterUtils.createStream(ssc, None)
  twitterStream.saveAsTextFiles("streamouts/tweets", "txt")
  ssc.start()
  Thread.sleep(30000)
  ssc.stop(false)

现在,代码不会抱怨任何缺少引用或任何东西。我相信我有正确的 SBT 依赖项。以下代码似乎正在运行。它在其中创建文件夹结构和文本文件。但是,所有文本文件都是完全空白的。大小为 0kb。我做错了什么?有人有任何想法,为什么它看起来像是创建输出文本文件,但实际上并没有写入文件?顺便一提:我已经从 Twitter 应用程序中三重检查了消费者密钥、访问令牌等。我确定我已经正确复制了它们。

康纳

代码在您的情况下看起来不错。

为什么它看起来像是在创建输出文本文件,但实际上并没有写入文件?

根据这里new StreamingContext(spark.sparkContext, Seconds(5))

对于每 5 秒的间隔,它会收集 in 中的数据并创建一个RDD,因此每个RDD都用您传入的prefixsuffix写入saveAsTextFiles

因此,如果您的RDD为空,您的文件可能是空的,否则在文件夹中生成的文件显示为part-00000part-00001part-00002应包含数据而不是_SUCCESS和.part-00000.crc

我希望这对你有所帮助,

最新更新