我的问题是,在使用Spark SQL将表反规范化为更大的表时,我发现任务大小过大的警告。
在人们指出使用广播或避免关闭整个班级的其他答案之前;让我说我已经读过这些,并且在使用Spark SQL时仍然特别困惑。
使用Spark SQL时,我的任务大小最多可达建议大小的10倍。
以下情况:
额外信息:
我尝试将源表移动到不同的类中并将它们嵌入到函数中,任务大小没有改变。
我不确定广播如何帮助解决这个问题,因为使用Spark-CSV将源数据直接读入数据帧,因此应该已经分发。
答案 0 :(得分:-1)
在Spark中,您可以选择caching (persistence) level将一些大型内存中对象卸载到磁盘,然后使用unpersist()
选择要丢弃的已缓存结果。