我有一個約10個平面文件的應用程序,每個文件的值都超過200MM +記錄。業務邏輯涉及順序連接所有這些邏輯。Spark RDD - 避免混洗 - 分區有助於處理大文件嗎?
我的環境: 1主 - 3個從站(用於測試我已經分配了一個1GB存儲器到每個節點)
大多數代碼只是做了如下爲每個加入
RDD1 = sc.textFile(file1).mapToPair(..)
RDD2 = sc.textFile(file2).mapToPair(..)
join = RDD1.join(RDD2).map(peopleObject)
任何建議調整,如重新分區,並行化..?如果是的話,有什麼最好的做法,以獲得良好的重新分區號碼?
與當前的配置工作需要一個多小時,我看到洗牌寫的幾乎每一個文件> 3GB
文件:基本原理是從星火UI採取以下美麗的PIC呈現的?你有多少個分區? – marios
沒有。他們在aws s3中並沒有做任何分區,但內部可能會使用默認並行機制。 – sve
你可以做RDD1.partitions.size或運行「RDD1.toDebugString」,看看你有多少個分區? – marios