【问题标题】:spark scala RDD[double] IIR filtering (sequential feedback filtering operation)spark scala RDD[double] IIR 滤波(顺序反馈滤波操作)
【发布时间】:2016-02-02 22:49:32
【问题描述】:

我在 Apache Spark (Scala) 中找不到这样做的方法,基本上我有一个 RDD[Double]

[1.0,2.0,3.0,2.0,4.0,...]

我想通过以下操作对这样的RDD[Double] 执行顺序反馈操作

y(n) = 0.5*y(n-1) + x(n), where y(n) is the output , with y(n) = 0 when n < 0 and x(n) is the input, for n = 0,1,2,3...

(这可以在Matlab中使用以下命令filter(1,[1 -0.5],[1,2,3,2,4])精确实现。

所以预期的输出将是

[1.0000,2.5000,4.2500,4.1250,6.0625,...]

谢谢!

更新

  1. 我在 Scala 中寻找与 spark RDD 等效的 scanLeft,并得到了与 https://issues.apache.org/jira/browse/SPARK-9999 相关的 https://issues.apache.org/jira/browse/SPARK-2991。看来 Spark 正计划拥有此功能...我还不熟悉 Spark 架构/路线图...有人可以帮忙吗?谢谢

【问题讨论】:

    标签: apache-spark rdd


    【解决方案1】:

    这似乎不是 Spark 的工作,它无法有效地并行化 - 输出中的每个元素都依赖于输出(和输入)的所有先前元素。

    用简单的程序处理它,但使用Seqence(或Iterator)只存储当前需要的单个元素,即使是大数据也不成问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2016-07-30
      • 1970-01-01
      相关资源
      最近更新 更多