1 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
但 pyspark 仍然使用版本 1 將數(shù)據(jù)寫入 S3(正在創(chuàng)建臨時(shí)文件夾)。
首先,v1 和 v2 算法都使用臨時(shí)文件。如MAPREDUCE-6336中所述
算法版本 2 更改了 commitTask、recoverTask 和 commitJob 的行為。
commitTask 將 $joboutput/_temporary/$appAttemptID/_temporary/$taskAttemptID/ 中的所有文件重命名為 $joboutput/
recoverTask 嚴(yán)格來說是一個(gè) nop,但是對(duì)于從版本 1 升級(jí)到版本 2 的情況,它會(huì)檢查 $joboutput/_temporary/($appAttemptID - 1)/$taskID/ 中是否有任何文件并將它們重命名為 $joboutput/
commitJob 刪除 $joboutput/_temporary 并寫入 $joboutput/_SUCCESS
因此,請(qǐng)確保您實(shí)際看到的是與 v1 而不是 v2 對(duì)應(yīng)的更改。
此外spark.hadoop
,選項(xiàng)適用于上下文而不是特定的寫入,因此您的第三次嘗試根本不起作用。
其余的應(yīng)該是等價(jià)的(第二個(gè),如果之前設(shè)置過SparkContext
)。
添加回答
舉報(bào)