加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – ‘spark.driver.maxResultSize’的范围

发布时间:2020-12-16 08:53:09 所属栏目:安全 来源:网络整理
导读:我正在运行Spark作业来聚合数据.我有一个名为Profile的自定义数据结构,它基本上包含一个mutable.HashMap [Zone,Double].我想使用以下代码合并共享给定密钥(UUID)的所有配置文件: def merge = (up1: Profile,up2: Profile) = { up1.addWeights(up2); up1}val
我正在运行Spark作业来聚合数据.我有一个名为Profile的自定义数据结构,它基本上包含一个mutable.HashMap [Zone,Double].我想使用以下代码合并共享给定密钥(UUID)的所有配置文件:

def merge = (up1: Profile,up2: Profile) => { up1.addWeights(up2); up1}
val aggregated = dailyProfiles
  .aggregateByKey(new Profile(),3200)(merge,merge).cache()

奇怪的是,Spark失败并出现以下错误:

org.apache.spark.SparkException: Job aborted due to stage failure: Total size of serialized results of 116318 tasks (1024.0 MB) is bigger than spark.driver.maxResultSize (1024.0 MB)

显而易见的解决方案是增加“spark.driver.maxResultSize”,但有两件事让我困惑.

>太多巧合,我得到1024.0大于1024.0
>我发现谷歌搜索此特定错误和配置参数的所有文档和帮助表明它会影响将值带回驱动程序的函数. (比如take()或collect()),但是我没有把任何东西带到驱动程序,只是从HDFS读取,聚合,保存回HDFS.

有谁知道为什么我收到这个错误?

解决方法

Yes,It’s failing because The values we see in exception message are
rounded off by one precision and comparison happening in bytes
.

That serialized output must be more than 1024.0 MB and less than 1024.1 MB.

检查添加的Apache Spark代码片段,获取此错误非常有趣且非常罕见.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读