当前位置: 首页 > 知识库问答 >
问题:

使用Spark Streaming API测试Twitter

韦繁
2023-03-14

我是Spark流媒体框架的新手,正在尝试处理推特流。我正在编写测试用例,并了解我可以使用Spark StreamingSuite Base,这将帮助我将输入测试为函数流。但我编写了一个函数,它以DStream[状态]作为输入,处理后将DStream[字符串]作为输出。我在StreamingSuite数据库中使用的api是testOperation。

test("Filter only words Starting with #")  {
  val inputTweet = List(List("this is #firstHash"), List("this is #secondHash"), List("this is #thirdHash"))
  val expected = List(List("#firstHash"), List("#secondHash"), List("#thirdHash"))

  testOperation(inputTweet, TransformTweets.getText _, expected, ordered = false)

这是发送输入的函数。。

 def getText(englishTweets: DStream[Status]): DStream[String] = {
    println(englishTweets.toString)

    val hashTags = englishTweets.flatMap(x => x.getText.split(" ").filter(_.startsWith("#")))

    hashTags
  }

但是由于DStream[状态]和DStream[字符串],我得到了错误“类型不匹配”。我如何模拟流[状态]。

共有1个答案

韦昊焜
2023-03-14

因此,我通过从推特对象工厂(TwitterObjectFactory)的“创建状态”(createStatus)API获取推特状态来解决了这个问题。没有必要模拟TwitterStatus。即使您设法模拟它,也存在序列化问题。因此,这是最好的解决方案

val rawJson = Source.fromURL(getClass.getResource("/tweetStatus.json")).getLines.mkString
val tweetStatus = TwitterObjectFactory.createStatus(rawJson)

希望这对某人有帮助!

 类似资料:
  • 问题内容: 我正在使用JavaScript测试运行程序“摩卡”。 我的测试失败了,因此我将使用进行调试。 但是运行测试时,没有输出(仅来自Mocha的测试结果)。看来Mocha已捕获并抑制了我的输出! 如何让Mocha显示输出?(对于失败的测试)? 编辑: 抱歉!- 在测试期间可以正常工作!我肯定一直期望它抑制输出,而且我没有正确检查自己的代码。感谢您的回应。所以…话虽如此…也许抑制通过测试的输出

  • 问题内容: 建议使用哪些方法来加快测试速度。 当连接断开或发生超时错误等时,我正在测试具有重试功能的网络库。但是,该库在重试之间使用a (因此在服务器重新启动时它不会连接数千次)。这个电话大大降低了单元测试的速度,我想知道有什么方法可以覆盖它。 请注意,我愿意实际更改代码,或使用模拟框架模拟Thread.sleep(),但想先听听您的意见/建议。 问题答案: 通常将与时间相关的功能委托给单独的组件

  • 问题 假如你正在使用 CoffeeScript 并且想要验证功能是否与预期一致,便可以决定使用 Nodeunit 测试框架。 讨论 Nodeunit 是一种 JavaScript 对于单元测试库( Unit Testing libraries )中 xUnit 族的实现,Java, Python, Ruby, Smalltalk 中均可以使用。 当使用 xUnit 族测试框架时,你需要将所需测试的

  • 问题 假如你正在使用 CoffeeScript 写一个简单地计算器,并且想要验证其功能是否与预期一致。可以使用 Jasmine 测试框架。 讨论 在使用 Jasmine 测试框架时,你要在一个参数(spec)文档中写测试,文档描述的是代码需要测试的预期功能。 例如,我们希望计算器可以实现加法和减法的功能,并且可以正确进行正数和负数的运算。我们的 spec 文档如下列所示。 # calculator

  • 我有下面一个班的方法。 使用mockito的junit测试用例将提供100%的代码覆盖率。

  • 和should接口都利用链接来构造类似英语的句子来描述测试。 一旦你决定了一个风格,你应该保持这种风格为所有其他测试。 每种风格都有自己独特的语法; 请参阅该 。

  • 当你想要使用接近真实数据库的东西来测试组件,同时又不想造成实际数据库输入输出的操作开销时,内存(InMemory)提供程序会很有用。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。 InMemory 不是关系数据库 EF Core 数据库提供程序并非就是关系数据库。InMemory 是设计用于测试的通用数据库,而不是模拟关系数据库。 与此相关的样例包括: InMemory将允许您保存

  • SQLite 有一个内存模式,它允许你使用 SQLite 来编写针对关系数据库的测试,并且不会造成实际数据库的操作开销。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。 样例测试场景 考虑以下服务,其允许应用程序代码执行一些 blog 相关的操作。其内部使用的是链接到 SQL Server 数据库的 DbContext。将上下文切换链接到内存 SQLite 数据库将会很有用,这样的话