1. 概述
1.1 应用场景
用户想要使用上月末、上年末、上季度末、每个月第一天、最后一天等自定义参数(任务参数)无法直接设置的动态数据作为参数,进行定时任务的开发。
1.2 实现思路
使用 SparkSQL 生成需要设置的时间,然后使用参数输出将时间设置为参数,供后续定时任务节点使用。
2. 操作步骤
创建定时任务,并使用「数据转换」节点,进入编辑界面后,拖入「SparkSQL」算子,如下图所示:
以上月末为例,输入 SparkSQL 语句SELECT last_day(date_sub(current_date, dayofmonth(current_date))) AS last_day_of_last_month,如下图所示:
点击「数据预览」即可获取当前时间上月末日期,如下图所示:
使用参数输出功能,将获取的日期设置为参数
保存数据转换中的设置,然后即可在后续节点使用设置好的上月末时间参数,如下图所示:
3. 其他时间SparkSQL写法
上年末:SELECT last_day(date_sub(current_date, dayofyear(current_date))) AS last_day_of_last_year
每个月第一天:select trunc(current_date,"MM"),值为 yyyy-mm-dd 格式;SELECT date_trunc('month', current_date) AS first_day_of_month,值为 yyyy-mm-dd hh:mm:ss 格式。
每个月最后一天:select last_day(current_date)
每年第一天:select trunc(current_date,"YY")
上个月第一天:SELECT date_trunc('MONTH', add_months(current_date, -1))