0
- 聚集者皆具有潜在的数百万行的关键。
- 在行中添加要素。要做到这一点,我们必须知道前一行(按键和时间戳)。目前我们使用groupByKey并在Iterable上进行工作。
我们尝试:
- 添加更多的内存给执行程序/驱动器
- 更改分区
更改允许执行人/驱动器工作内存的数量。它只能用于关键的10k或100k行。关于将来可能发生的关键数百万行的情况。
似乎没有对那种问题的一些工作:https://github.com/apache/spark/pull/1977
但它是专用于PySpark而不是我们使用Scala的API目前
我的问题是:
- 我知道我必须专门在PySpark中工作,等待处理这种类型的 问题的新功能是否更好?
- 另一个解决方案是使用一些特定的键和值来处理我的需求,从而实现不同的工作流程。任何设计模式。例如,需要通过按键和按时间戳来添加提前预置行?
Thx为答复肖恩。不知道关于foldByKey,我会尝试。问题依然存在,用于通过密钥对所有数据进行聚合。我不知道该怎么做。 – jnaour 2014-10-30 12:42:51
对于我只需要前一个元素的部分,在搜索之后,可以使用zipWithIndex来连接两个RDD:索引和索引+ 1,这样我就可以在一行中获得所需的所有数据。很多过程需要一个简单的需求,但我不确定是否有更好的解决方案... – jnaour 2014-10-30 13:50:20