Apache spark 如何避免;任务大小太大;?

Apache spark 如何避免;任务大小太大;?,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我的问题是,在使用Spark SQL将表反规范化为更大的表时,会收到任务大小过大的警告 在人们指出其他答案说使用广播或避免关闭整个课堂之前;我要说的是,我已经阅读了这些内容,但在使用Spark SQL时仍然感到困惑 使用Spark SQL时,我的任务大小将达到建议大小的10倍 情况如下: 我有10多个表/数据帧要连接到uber表中 我创建了一个scala对象,并在主体中从CSV填充了这10个表 我将该对象的成员(只是表)导入到其他对象中,在这些对象中,要形成uber表的计算是非常复杂的 当这1

我的问题是,在使用Spark SQL将表反规范化为更大的表时,会收到任务大小过大的警告

在人们指出其他答案说使用广播或避免关闭整个课堂之前;我要说的是,我已经阅读了这些内容,但在使用Spark SQL时仍然感到困惑

使用Spark SQL时,我的任务大小将达到建议大小的10倍

情况如下:

  • 我有10多个表/数据帧要连接到uber表中
  • 我创建了一个scala对象,并在主体中从CSV填充了这10个表
  • 我将该对象的成员(只是表)导入到其他对象中,在这些对象中,要形成uber表的计算是非常复杂的
  • 当这10个表之间的sparksql连接运行到(比如)将结果表写入拼花文件时,我会收到任务大小警告
额外信息:

  • 我尝试将源表移动到不同的类中,并将它们嵌入到函数中,任务大小没有改变

  • 我不确定广播如何帮助这一点,因为源数据是使用Spark CSV直接读取到数据帧中的,因此应该已经分发


在Spark中,您可以选择将一些大型内存对象卸载到磁盘,并使用
unpersist()
选择要丢弃的已缓存结果。

在Spark中,您可以选择将一些大型内存对象卸载到磁盘,并使用
unpersist()
选择要丢弃的已缓存结果。

您可以在问题中包含警告吗?你能显示导致警告的代码吗?你能在问题中包括警告吗?您能否展示导致警告的代码?请进一步充实您的答案,例如解释如何选择缓存级别以避免大量内存使用,以及如何使用
unpersist()
释放内存的示例。请进一步充实您的答案,例如,解释选择缓存级别如何避免大量内存使用,以及如何使用
unpersist()
释放内存的示例。