我的问题是,我在使用Spark SQL将桌子不利的桌子变成较大桌子时,我的任务大小太大了。
人们在人们指出其他答案之前说使用广播或避免在整个班级上关闭;让我说我已经阅读了这些,并且在使用Spark SQL时仍然具体感到困惑。
使用SPARK SQL时,我的任务尺寸最高为建议尺寸的10倍。
以下情况:
- 我有10个以上的表/数据框架可以加入Uber桌子。
- 我创建了一个单一的Scala对象,并且在体内从其CSV中填充了这10个表。
- 我在其他对象中导入该对象的成员(仅表),在这些对象中,要构成Uber-table的计算。
- 当Spark-SQL在这10个表之间连接到将结果表写入镶木quet文件时,我会得到任务尺寸警告。
额外信息:
-
我已经尝试将源表转移到不同的类中,并将它们嵌入功能中,并且任务大小没有改变。
-
我不确定广播能够对此有所帮助,因为使用SPARK-CSV将源数据直接读取到数据帧中,因此应该已经分发了。
在Spark中,您可以选择缓存(持久性)级别以卸载一些大型内存对象进行磁盘,并使用unpersist()
选择要丢弃的已经遇到的结果。