大数据计算MaxCompute中pyspark执行任务报错?

大数据计算MaxCompute中pyspark执行任务报错:Caused by: java.lang.Exception: com.aliyun.odps.cupid.CupidException: ODPS-0720301: Too many job input - too many map input, must be <= 4096,该如何配置max map input呢?

展开
收起
真的很搞笑 2023-10-18 23:11:18 162 分享 版权
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    这个错误是由于在MaxCompute中,每个任务的输入数据量超过了限制(默认为4096个map input)。要解决这个问题,你可以尝试以下方法:

    1. 减少任务的输入数据量。检查你的代码和数据,确保每个任务的输入数据量不超过4096个map input的限制。

    2. 增加MaxCompute的每个任务的最大输入数据量。你可以联系阿里云技术支持,申请提高每个任务的最大输入数据量。

    3. 将多个小任务合并成一个大任务。这样可以减少每个任务的输入数据量,从而避免超过限制。但是请注意,这可能会影响任务的性能和执行时间。

    2023-10-19 21:49:25
    赞同 展开评论
  • 这个问题是因为你的Spark作业中的map任务的输入数量超过了MaxCompute的限制(默认限制为4096)。你可以通过以下步骤来解决这个问题:

    1. 在你的Spark作业的代码中,找到所有的flatMapmap或者filter操作,这些操作都会创建一个新的map任务。

    2. 对于每个flatMapmap或者filter操作,检查其输入的数量。如果输入的数量超过4096,你需要优化你的代码,减少每个map任务的输入数量。

    3. 如果无法减少每个map任务的输入数量,你可以在MaxCompute的控制台中增加max_map_input的值。具体操作如下:

      • 登录到MaxCompute的控制台。
      • 选择你的Project。
      • 点击"资源管理"选项卡。
      • 在左侧菜单中选择"参数设置"。
      • 在"参数设置"页面中,找到"max_map_input"参数,并将其值增加到你想要的数值。
    2023-10-19 15:52:54
    赞同 展开评论
  • 应该是map worker的输入数据量。
    设置这个set odps.stage.mapper.split.size=4096;,此回答整理自钉群“MaxCompute开发者社区2群”

    2023-10-19 07:44:04
    赞同 展开评论

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

还有其他疑问?
咨询AI助理