【问题标题】:In Spark, how do I transform my RDD into a list of differences between RDD items?在 Spark 中,如何将我的 RDD 转换为 RDD 项之间的差异列表?
【发布时间】:2018-08-16 11:09:04
【问题描述】:

假设我有一个如下所示的整数 RDD:

10, 20, 30, 40, 50, 60, 70, 80 ...

(即有不同整数的流)

并修改 RDD,使其看起来像这样:

15, 25, 35, 45, 55, 65, 75, 85...

(即RDD上的每一项都是上面两个RDD的差。)

我的问题是:在 Spark 中,如何将我的 RDD 转换为 RDD 项之间差异的列表?

【问题讨论】:

  • 您想要执行的转换究竟是什么?即,对于10,20,30,40,50...,差异列表如何等于15,25,35,45...
  • 嗨@rennerj2 当我说“每个项目是两个 rdds 的差异”时,我觉得我已经解释过了,而且对于一个人来说,连贯正确地回答已经足够清楚了。有什么我可以做的更清楚的吗?
  • 看起来您正在寻找跨 一个 RDD 的滑动窗口中每两个元素的平均值,而不是两个 RDD 中项目的差异。我想这只是我对措辞的一个小选择,但无论如何有人理解它足以回答,所以没关系。干杯!

标签: scala apache-spark rdd


【解决方案1】:

您可以借助 rdd's sliding 功能。如下所示

 import org.apache.spark.mllib.rdd.RDDFunctions._

 val rdd=sc.parallelize(List(10, 20, 30, 40, 50, 60, 70, 80))

 rdd.sliding(2).map(_.sum/2).collect

//output
res14: Array[Int] = Array(15, 25, 35, 45, 55, 65, 75) 

【讨论】:

  • 谢谢!我知道这会涉及到滑动!
猜你喜欢
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 2015-10-28
  • 1970-01-01
相关资源
最近更新 更多