0
這是一段代碼片段。 (問題描述如下)爲什麼一個適度的火花廣播變量會使工作掛起?
val broadcastVarbannedDNS = sc.broadcast(filterList)
val INPUT = hc.table(s"tableName").where(s"DS BETWEEN 2016120100 AND 2016120100").rdd.filter(x => !broadcastVarbannedDNS.value.map(str => x.getString(2).contains(str)).contains(true))
INPUT.count()
filterList是一個帶有200k +行的csv。出來約9MB。
當我使用整個篩選器列表運行時,作業在篩選器階段掛起,並且沒有任何異常或提示顯示問題。日誌上也沒有。但是,當我將filterList文件剪切成幾百行時,它會像熱刀一樣通過黃油運行。立即,可以得出結論:「更大」的文件是問題,儘管9MB與應該能夠處理GB的緩存相比是微不足道的。任何幫助表示讚賞。