dataworks中为什么代码在pyodps3运行时正常,把代码放到赋值节点运行就出错了?

dataworks中为什么代码在pyodps3运行时正常,把代码放到赋值节点运行就出错了?或者说赋值节点编辑代码有什么限制吗?image.png
image.png

展开
收起
真的很搞笑 2023-08-07 19:29:25 84 分享 版权
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    有几个原因可能造成DataWorks代码在PyODPS3节点正常但在赋值节点出错:

    版本不兼容
    赋值节点默认使用的是pyodps2版本,而可能你测试时用的是pyodps3版本。这两种版本API有差异。

    依赖不完整
    赋值节点使用的数据仓库中可能没有完整地安装pyodps3及其依赖。而你测试时本地环境完整。

    代码风格限制
    赋值节点对于可执行的代码有一定限制,如不支持with上下文管理器。

    异常隐藏
    赋值节点在执行脚本时,异常信息不一定清晰地反馈给用户。可能需要查看详细日志排查。

    节点输出模式
    赋值节点有update和insert两种输出模式,对代码有限制。

    资源限制
    赋值节点运行时可能受到资源(CPU/内存)限制,影响代码性能。

    网络环境
    赋值节点运行环境可能存在网络限制,而你测试时网络更畅通。

    所以在DatWorks赋值节点执行代码时,最好做到:

    使用pyodps2而非pyodps3编写代码
    避免使用with上下文管理器
    注意异常信息来自详细日志
    匹配节点的输出模式
    考虑资源限制对性能的影响
    检查网络环境

    2023-08-09 22:46:45
    赞同 展开评论
  • 赋值节点的python是python2 且不是pyodps哈,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-08-08 16:47:14
    赞同 展开评论

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

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