【问题标题】:Defining worker's data range in Spark-Python在 Spark-Python 中定义工作人员的数据范围
【发布时间】:2017-05-15 12:59:51
【问题描述】:

火花: 我有一个长度为 'n' (a1, a2,...ak,...an) 的顺序数据。我要表演fun(a1, a2,...a5), fun(a5,a6,...a9),......fun(an-4...an-2,an-1,an),其中fun是数学运算,独立应用于数据块。 我希望这些块应该并行执行。我是否可以为执行者(每个区块)提供开始和结束范围? [块大小可变但统一]。

【问题讨论】:

  • 请更具体一些,分享数据、代码和输出。

标签: apache-spark mapreduce pyspark


【解决方案1】:

添加索引:

rdd_indexed = rdd.zipWithIndex()

生成存储桶:

with_buckets = rdd.mapValues(lambda x: x % 5)

交换:

swapped = rdd.map(lambda xi: (x[1], x[0]))

还有reduceByKey:

swapped.reduceByKey(f)

【讨论】:

  • 感谢您提供快速响应的解决方案。我可以有重叠值的桶,例如'm' 的重叠条带大小,其中 'm'
  • 第二个功能:fun 将一次应用于窗口的所有值,上述方式是一次处理一个索引,这并不能解决目的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 2020-07-04
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多