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) | 函数说明:返回月中某日 SELECT day('2023-07-30'); 30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | dayofweek(date) | 函数说明:返回星期几(1-7) SELECT dayofweek('2023-07-30'); 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | dayofyear(date) | 函数说明:返回年中的日 SELECT dayofyear('2023-04-09');99 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | from_unixtime(unix_time[, fmt]) | 函数说明:以Unix时间返回日期 SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss'); 1970-01-01 08:00:00 SELECT from_unixtime(0); 1970-01-01 08:00:00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | from_utc_timestamp(timestamp, timezone) | 函数说明:以UTC时间返回日期 SELECT from_utc_timestamp('2023-08-31', 'Asia/Seoul'); 2023-08-31 09:00:00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | hour(timestamp) | 函数说明:返回输入的小时 SELECT hour('2023-07-30 12:58:59'); 12 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | last_day(date) | 返回日期所属月份的最后一天 SELECT last_day('2009-01-12'); 2009-01-31 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | minute(timestamp) | 函数说明:返回输入的分钟数 SELECT minute('2023-07-30 12:58:59'); 58 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | month(date) | 函数说明:返回输入的月份 SELECT month('2023-07-30'); 7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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。 SELECT next_day('2015-01-14', 'TU'); 2015-01-20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19 | quarter(date) | 函数说明:返回输入日期所在的季度 SELECT quarter('2023-08-31'); 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | second(timestamp) | 函数说明:返回字符串的秒数 SELECT second('2023-07-30 12:58:59'); 59 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21 | to_date(date_str[, fmt]) | 函数说明:将字符串转换为日期。 注意: 字符串 必须 采用格式:yyyy-mm-ddTHH24:MM:SS.、yyyy-mm-dd、yyyy-mm-dd HH24:MM:SS等 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
22 | to_timestamp(timestamp_str[, fmt]) | 函数说明:将字符串转换为时间戳。 注意: 字符串 必须 采用格式 yyyy-mm-ddTHH24:MM:SS. SELECT to_timestamp('2023-12-31 00:12:00'); 2023-12-31 00:12:00 SELECT to_timestamp('2023-12-31', 'yyyy-MM-dd'); 2023-12-31 00:00:00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23 | to_unix_timestamp(timeExp[, fmt]) | 函数说明:将字符串转换为Unix时间戳 SELECT to_unix_timestamp('2023-04-08', 'yyyy-MM-dd'); 1680883200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
24 | to_utc_timestamp(timestamp, timezone) | 函数说明:将字符串转换为UTC时间戳 SELECT to_utc_timestamp('2023-08-31', 'Asia/Seoul');2023-08-30 15:00:00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
25 | trunc(date, fmt) | 函数说明:截断日期 SELECT trunc('2019-08-04', 'week'); 2019-07-29 SELECT trunc('2019-08-04', 'quarter'); 2019-07-01 SELECT trunc('2009-02-12', 'MM'); 2009-02-01 SELECT trunc('2015-10-27', 'YEAR'); 2015-01-01 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
26 | unix_timestamp(date) | 函数说明:返回Unix时间戳 SELECT unix_timestamp(); 1476884637 SELECT unix_timestamp('2016-04-08', 'yyyy-MM-dd'); 1460041200 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
27 | weekday(date) | 函数说明:星期几(0-6) SELECT weekday('2009-07-30'); 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
28 | weekofyear(date) | 函数说明:返回给定日期在一年中的哪一周 SELECT weekofyear('2008-02-20'); 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
29 | year(date) | 函数说明:返回字符串的年份 SELECT year('2023-07-30'); 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
30 | current_date() current_date | 函数说明:返回当前日期 SELECT current_date(); 2023-11-27 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
31 | now() | 函数说明:返回当前日期时间 SELECT now(); 2023-11-27 17:43:57.369 |