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的缓存相比是微不足道的。任何帮助表示赞赏。