【问题标题】:Weird behavior of reduceByKeyAndWindow function in SparkSpark中reduceByKeyAndWindow函数的奇怪行为
【发布时间】:2017-02-21 11:50:51
【问题描述】:

我正在使用 spark 1.6 并遇到了这个函数 reduceByKeyAndWindow,我用它来对通过 kafka 主题传输的数据执行字数统计。

以下是 reduceByKeyAndWindow 提供的替代方案列表。正如我们所见,所有备选方案都具有相似的签名,但带有额外的参数。

但是,当我仅将 reduceByKeyAndWindow 与 reduce 函数或 reduce 函数和持续时间一起使用时,它可以工作并且不会给我任何错误,如下所示。

但是当我使用具有减少功能、持续时间和滑动窗口时间的替代方案时,它开始给我以下错误,其他替代方案也会发生同样的情况,如下所示。

我不确定这里发生了什么以及如何解决问题。

感谢任何帮助

【问题讨论】:

  • reduceByKeyAndWindow(_ + _, _ - _, Minutes(10), Seconds(2), 2) 这个对我有用..
  • 回答了您的问题...

标签: scala apache-spark mapreduce spark-streaming word-count


【解决方案1】:

如果您评论此行.words.map(x => (x, 1L)),您应该可以使用DStream 中的方法[.reduceByWindow(_+_, Seconds(2), Seconds(2))]。

如果将单词转换为带有计数的单词,则应使用以下方法。

reduceByKeyAndWindow(_ + _, _ - _, Minutes(10), Seconds(2), 2)

有关reduce functioninverse reduce 函数https://github.com/apache/spark/blob/master/streaming/src/main/scala/org/apache/spark/streaming/dstream/DStream.scala 的更多详细信息,请参阅文档

【讨论】:

  • 问题是,如果你看到我可用的函数列表,我也有没有反向 reduce 函数的函数签名,所以从技术上讲它应该可以工作。由于它不起作用,您能解释一下为什么它不起作用以及错误消息的含义吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
  • 2011-06-14
  • 2020-01-31
  • 2014-05-24
相关资源
最近更新 更多