如何避免"Task size too large"?



我的问题是,我在使用Spark SQL将桌子不利的桌子变成较大桌子时,我的任务大小太大了。

人们在人们指出其他答案之前说使用广播或避免在整个班级上关闭;让我说我已经阅读了这些,并且在使用Spark SQL时仍然具体感到困惑。

使用SPARK SQL时,我的任务尺寸最高为建议尺寸的10倍。

以下情况:

  • 我有10个以上的表/数据框架可以加入Uber桌子。
  • 我创建了一个单一的Scala对象,并且在体内从其CSV中填充了这10个表。
  • 我在其他对象中导入该对象的成员(仅表),在这些对象中,要构成Uber-table的计算。
  • 当Spark-SQL在这10个表之间连接到将结果表写入镶木quet文件时,我会得到任务尺寸警告。

额外信息:

  • 我已经尝试将源表转移到不同的类中,并将它们嵌入功能中,并且任务大小没有改变。

  • 我不确定广播能够对此有所帮助,因为使用SPARK-CSV将源数据直接读取到数据帧中,因此应该已经分发了。

在Spark中,您可以选择缓存(持久性)级别以卸载一些大型内存对象进行磁盘,并使用unpersist()选择要丢弃的已经遇到的结果。

相关内容

  • 没有找到相关文章

最新更新