1
我有一個計劃採取產生,並會運行類似數據幀排序依據Spark中
Select Col1, Col2...
orderBy(ColX) limit(N)
但是一個數據幀,當我收集結束的數據,我覺得這是造成驅動程序到OOM,如果我拿足夠大的頂部N
另一種觀察是,如果我只是做排序和頂部,這個問題不會發生。所以這種情況只有在排序和排名同時出現時纔會發生。
我想知道爲什麼會發生?特別是,這兩種轉換組合下面真正發生了什麼? Spark如何通過排序和限制來評估查詢,以及下面的相應執行計劃是什麼?
也只是好奇的火花處理排序和DataFrame和RDD之間的頂部不同?
編輯, 對不起,我不是故意的收集, 我原來只是意味着,當我打電話的任何行動兌現的數據,不管它是否被收集(或任何動作將數據發送回驅動程序)或不(所以,問題絕對不是在輸出尺寸)
我建議你在你的問題中添加代碼。對於OOM錯誤通常是驅動程序方面。但沒有真正的代碼很難說。 –