ziwu1226 2024-01-11 10:01 采纳率: 0%
浏览 4

easyscheduler参数

我想在easyscheduler 中 使用shell组件完成 sql分区运算的代码,然后传递到后方sql组件中去运行, 但是使用自定义参数传递不到下个组件,这一方面要如何取解决(beeline/外部文件是是用不了的,不考虑这个)

代码:

#!/bin/bash
PART_COUNT=4
sql_commands=''
trans=''
for ((remainder=0; remainder<PART_COUNT; remainder++)); do
  sql_commands+="with dwb_tb as (
    select func_id
    from eww_uat.ads_test
    where dt = '${currentDate}'
      and func_id % ${PART_COUNT} = ${remainder}
  )
  insert into table eww_uat.bwb_test partition(dt ='${currentDate}', path ='${remainder}')
  SELECT func_id, count(func_id) as func_uv from dwb_tb
  GROUP BY func_id;"
done

echo "sql_commands=$sql_commands"
(不知道es支不支持setvalue)

也是设置了自定义参数 sql_commands $sql_commands
下游引用$sql_commands出不来代码

  • 写回答

1条回答 默认 最新

  • AI算法蒋同学 2024-01-17 19:25
    关注

    在EasyScheduler中,确保正确传递Shell组件中的自定义参数到后续SQL组件可能需要注意以下几点:

    1. 参数设置正确: 确保在Shell组件中正确设置了自定义参数 sql_commands,你可以在Shell组件的参数配置中添加这个参数。

    2. 参数引用正确: 在后续的SQL组件中引用Shell组件传递的参数时,确保使用正确的引用方式。一般来说,使用 ${sql_commands} 可以获取Shell组件传递的参数值。

    3. 参数传递是否生效: EasyScheduler可能需要一些特殊的语法或配置来确保自定义参数的正确传递。请查阅EasyScheduler的文档,以确定是否有特殊的方式来传递和引用自定义参数。

    4. 脚本中的问题: 你的Shell脚本中有一个可能导致问题的地方。在最后的 echo 语句中,确保使用双引号包裹变量的值,以防止其中的特殊字符或空格导致参数传递问题。可以改成 echo "sql_commands=${sql_commands}"

    示例:

    #!/bin/bash
    PART_COUNT=4
    sql_commands=''
    trans=''
    for ((remainder=0; remainder<PART_COUNT; remainder++)); do
      sql_commands+="with dwb_tb as (
        select func_id
        from eww_uat.ads_test
        where dt = '${currentDate}'
          and func_id % ${PART_COUNT} = ${remainder}
      )
      insert into table eww_uat.bwb_test partition(dt ='${currentDate}', path ='${remainder}')
      SELECT func_id, count(func_id) as func_uv from dwb_tb
      GROUP BY func_id;"
    done
    
    echo "sql_commands=${sql_commands}"
    

    请注意以上建议可能需要根据具体的EasyScheduler版本和配置来调整。如果问题仍然存在,建议查阅EasyScheduler的官方文档或社区支持,以获取更详细的帮助。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月11日