1、功能入口
1)、【新建模型】并且在模型中增加 【ETL高级查询】。
2)、进入到 ETL高级查询:
- 先从左侧拖入【Excel文件】,上传本地excel文件,点击执行该节点。示例数据订单数据.xlsx
- 拖入【读取Excel sheet】节点,再 执行该节点:
- 拖入【列选择】组件,连接组件,再执行该节点:
- 拖入【派生列】,连接组件,再 执行该节点:
- 点击【派生列配置】,进入配置面板,输入相关SparkSQL函数,参考:2、函数说明
2、函数说明
1 | 函数 | 描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | add_months(start_date, num_months) | 函数名称:add_months(日期字段, 月数): 函数说明: 返回指定日期前或者后几个月;比如根据订单日期获取上月、获取下月。 示例:在派生列节点输入add_months(日期字段, 月数),替换成相应字段,如下图: 1、下月:add_months([订单时间],1) 2、上月:add_months([订单时间],-1)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | date_add(start_date, num_days) | 函数名称:date_add(日期字段, 天数): 函数说明: 返回指定日期后几天;比如根据订单日期获取明天。 示例:在派生列节点输入date_add(日期字段, 天数),替换成相应字段,如下图: 1、明天:date_add([订单日期],1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | date_format(timestamp, fmt) | 函数名称:date_format(日期字段, 格式): 函数说明: 修改日期格式,对时间字段进行格式化。 示例: 1、年-月-日转 年-月:date_format([OrderDate],'yyyy-MM'),※特别:M要大写! 2、年-月-日转年:date_format([OrderDate],'y')或date_format([OrderDate],'yyyy') 3、年-月-日转年-月-日 时-分-秒:date_format([OrderDate],'yyyy-MM-dd HH:mm:ss') 参数说明:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | date_sub(start_date, num_days) | 函数名称:date_sub(日期字段, 天数): 函数说明: 返回指定日期前几天;比如根据订单日期获取昨天。 示例: 1、昨天:date_sub([订单日期],1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | date_trunc(fmt, timestamp) | 函数名称:date_trunc(格式,日期字段): 函数说明: 返回格式化截断为指定单位的日期 示例: 1、按年截取:date_trunc('YEAR', [OrderDate]),也可以用: "YYYY", "YY" 2、其他截取格式 date_trunc('MM', '2015-03-05T09:32:05.359'); 2015-03-01 00:00:00 date_trunc('DD', '2015-03-05T09:32:05.359'); 2015-03-05 00:00:00 date_trunc('HOUR', '2015-03-05T09:32:05.359'); 2015-03-05 09:00:00 date_trunc('MILLISECOND', '2015-03-05T09:32:05.123456'); 2015-03-05 09:32:05.123 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | date_diff(endDate, startDate) /datediff(endDate, startDate) | 函数名称:date_trunc(结束日期, 开始日期): 函数说明: 返回日期之间的天数差 示例: 1、日期天数差:date_diff([RequiredDate],[OrderDate])或者datediff([RequiredDate],[OrderDate]) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | day(date), dayofmonth(date) | 返回月中某日 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | dayofweek(date) | 返回星期几(1-7) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | dayofyear(date) | 返回年中的日 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | from_unixtime(date) | 以Unix时间返回日期 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | from_utc_timestamp(date) | 以UTC时间返回日期 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | hour(date) | 返回输入的小时 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | last_day(date) | 返回日期所属月份的最后一天 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | minute(date) | 返回输入的分钟数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | month(date) | 返回输入的月份 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 | months_between(timestamp1, timestamp2[, roundOff]) | 函数说明:返回介于两个时间月份数 如果时间戳1晚于时间戳2,则结果为正值。如果时间戳1和时间戳2在同一个月的同一天,或者两者都是该月的最后一天,则将忽略。否则,差额将以每月31天为基础计算,并四舍五入至8位,除非舍入为false。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18 | next_day(start_date, day_of_week) | 返回比输入日期晚的第一天 day_of_week参数:Mon、Tue、Wed、Thu、Fri、Sat、Sun。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19 | quarter(date) | 返回输入日期所在的季度 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | second(timestamp) | 返回字符串的秒数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21 | to_date(date_str[, fmt]) | 将字符串转换为日期。 注意: 字符串 必须 采用格式 yyyy-mm-ddTHH24:MM:SS. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
22 | to_timestamp | 将字符串转换为时间戳。 注意: 字符串 必须 采用格式 yyyy-mm-ddTHH24:MM:SS. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23 | to_unix_timestamp | 将字符串转换为Unix时间戳 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
24 | to_utc_timestamp | 将字符串转换为UTC时间戳 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
25 | trunc | 截断日期 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
26 | unix_timestamp | 返回Unix时间戳 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
27 | weekday | 星期几(0-6) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
28 | weekofyear | 返回给定日期在一年中的哪一周 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
29 | year | 返回字符串的年份 |