0

我需要一些帮助来理解koalas 中不同类型的默认索引选择。我将在此处粘贴提供的定义的数据块,问题将随之而来。我无法完全理解三种可用默认值之间的区别。如果您能抽出一些时间帮助我理解这个概念,我将不胜感激。

序列类型- 目前考拉默认使用“序列”类型,因为它保证索引连续递增,就像熊猫一样。但是,它在内部使用了非分区窗口函数,这意味着需要将所有数据收集到单个节点中。如果节点没有足够的内存,性能会明显下降,或者出现OutOfMemoryError。

问题:

  1. 为什么在这种情况下需要在一个节点上收集数据?

分布式序列类型- 当使用“分布式序列”索引时,性能损失不如“序列”类型显着。它以分布式方式计算和生成索引,但它需要另一个额外的 Spark 作业来在内部生成全局序列。它也不保证结果的自然顺序。一般来说,它会成为一个不断增加的数字

问题:

  1. 通过选择分布式序列类型而不是序列类型,我放弃了什么功能?
  2. 1 如何导致显着降低性能损失?

分布式类型——“分布式”索引几乎没有性能损失,并且总是创建单调递增的数字。如果只需要索引作为每行的唯一编号或行的顺序,则此索引类型将是最佳选择。然而,这些数字有一个不确定的差距。这意味着此索引类型不太可能用作组合两个以上 DataFrame 或 Series 的操作的索引。

问题:

  1. 为什么这是最轻的实现火花?
  2. spark如何在这种类型的索引中保持递增的顺序?
4

0 回答 0