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