我正在使用R/spark循環播放一些csv數據文件。每個文件的大約1%必須保留(根據特定標準過濾)並與下一個數據文件合併(我已使用union
/rbind
)。但是,隨着循環運行,數據沿襲的時間越來越長,因爲火花會記住所有以前的數據集和filter()
-s。檢查點SparkR中的數據幀
有沒有辦法在spark API中做點校驗?我已經瞭解到spark 2.1對DataFrames有檢查點,但是這似乎無法從R.
我正在使用R/spark循環播放一些csv數據文件。每個文件的大約1%必須保留(根據特定標準過濾)並與下一個數據文件合併(我已使用union
/rbind
)。但是,隨着循環運行,數據沿襲的時間越來越長,因爲火花會記住所有以前的數據集和filter()
-s。檢查點SparkR中的數據幀
有沒有辦法在spark API中做點校驗?我已經瞭解到spark 2.1對DataFrames有檢查點,但是這似乎無法從R.
我們在Scala/GraphX的相當大的圖形上(幾十億數據)和搜索連接組件 。
我不確定R對於您的特定版本有什麼可用,但通常的解決方法是通過「保存」數據然後重新加載來破壞譜系。在我們的例子中,我們打破了沿襲每15次迭代:
def refreshGraph[VD: ClassTag, ED: ClassTag](g: Graph[VD, ED], checkpointDir: String, iterationCount: Int, numPartitions: Int): Graph[VD, ED] = {
val path = checkpointDir + "/iter-" + iterationCount
saveGraph(g, path)
g.unpersist()
loadGraph(path, numPartitions)
}
一個不完整的解決方案/解決方法是collect()
您的數據幀到R對象,後來被createDataFrame()
重新並行。這適用於小數據,但對於較大的數據集,它變得太慢並且抱怨太大的任務。
謝謝,我看你在每個循環使用不同的文件。我之前用同一個文件嘗試過,所以它不起作用。如果它適合我,我會測試並接受你的答案。 –
它似乎現在工作:-)雖然我遇到了另一個瓶頸:-( –
你可以編輯你的第一個問題或鏈接到你的新問題 – glefait