开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

PyODPS3 引用上下游节点参数错误

错误提示

Parse exception - invalid token '$'

流程

SHELL 配置需要执行的SQL脚本,PyODPS引用输入

SHELL 节点配置

echo "select '1234567890' a,'192.168.1.1' b";

节点输出 参数名 sql_string , 取值 ${sql_string}

PyODPS 节点配置

df = o.execute_sql('${sql_string}')

print(df);

配置使用参考文档: https://help.aliyun.com/document_detail/137534.html?spm=a1z3jh.13523495.0.0.691d6242a8WKBE


更新:上游节点输出参数为常量时,下游节点可被正常引用获取;

上游节点输出参数为变量时,取值该怎么关联填写呢?

展开
收起
游客gnezbo2hcosd6 2023-03-12 21:28:39 874 3
4 条回答
写回答
取消 提交回答
  • 今天也要加油吖~

    您好,按照提示是因为使用的SQL语句中包含$字符串,删除或更改即可。

    2023-03-18 23:02:42
    赞同 展开评论 打赏
  • 全栈JAVA领域创作者

    看起来您的错误提示是无效的符号" " 。这可能是因为您使用的image.png

    "。这可能是因为您使用的SQL语句中包含Dollar−Quoted字符串而ODPS不支持此特性。

    如果要将变量传递给PyODPS节点,可以在SHELL节点中定义它们,并将它们作为参数传递给下游节点。例如:

    # SHELL node
    my_var=1234567890
    my_param="'$my_var', '192.168.1.1'"
    echo "select $my_param"
    然后,在PyODPS节点中,您可以引用该参数并执行查询:
    
    python
    # PyODPS node
    sql_string = '${args[0]}'
    df = o.execute_sql(sql_string)
    print(df)
    
    

    请注意,变量名和参数必须用单引号或双引号括起来,以便正确处理空格和其他特殊字符。

    2023-03-15 00:22:37
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    下游引用赋值参数的节点需将待引用的赋值参数添加为节点上下文中的本节点输入参数。 说明 部分数据开发节点,可直接在节点的上下游参数中手动添加赋值参数

    2023-03-12 22:32:13
    赞同 展开评论 打赏
    • 文档中提到的节点输入输出均已配置
    • 业务流程未提交(猜测是这个原因?)
    • 只有两个组件节点,在业务流程界面直接执行,出现以上错误
    2023-03-12 21:38:05
    赞同 展开评论 打赏

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

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载