相关疑难解决方法(0)

哪些操作保留了RDD顺序?

RDD具有一个有意义的(与存储模型强加的一些随机顺序相反),如果它被处理sortBy(),则如本回复中所解释的那样.

现在,哪些操作保留了该订单?

例如,是否保证(之后a.sortBy())

a.map(f).zip(a) === 
a.map(x => (f(x),x))
Run Code Online (Sandbox Code Playgroud)

怎么样

a.filter(f).map(g) === 
a.map(x => (x,g(x))).filter(f(_._1)).map(_._2)
Run Code Online (Sandbox Code Playgroud)

关于什么

a.filter(f).flatMap(g) === 
a.flatMap(x => g(x).map((x,_))).filter(f(_._1)).map(_._2)
Run Code Online (Sandbox Code Playgroud)

这里"平等" ===被理解为"功能等同",即,没有办法使用用户级操作来区分结果(即,没有读取日志和c).

apache-spark rdd

48
推荐指数
2
解决办法
2万
查看次数

精神崩溃:RDD.zip()方法

我刚刚发现了这种RDD.zip()方法,我无法想象它的合同可能是什么.

当然,我明白它的作用.但是,我一直都是这样理解的

  • RDD 中元素顺序是无意义的概念
  • 分区数及其大小是仅供用户进行性能调整的实现细节

换句话说,RDD是(多)集合,而不是序列(当然,例如,Python中的一个AttributeError: 'set' object has no attribute 'zip')

我上面的理解有什么问题?

这种方法背后的理由是什么?

在琐碎的背景之外它是合法的a.map(f).zip(a)吗?

编辑1:

编辑2:回复说:

当您从另一个RDD计算一个RDD时,新RDD中的元素顺序可能与旧RDD中的元素顺序不对应.

这似乎暗示即使是微不足道a.map(f).zip(a)不能保证等同于a.map(x => (f(x),x)).zip()结果可重复的情况是什么?

apache-spark

35
推荐指数
2
解决办法
2万
查看次数

标签 统计

apache-spark ×2

rdd ×1