页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 10 下一个 »

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')

参数说明:

格式化参数释义类型例子
yyear2020; 20
D年内天数number(3)189
M/Lmonth7; 07; Jul; July
d月内天数number(2)28
Q/q年内季度number/text3; 03; Q3; 3rd quarter
E周几textTue; Tuesday
a上午/下午am-pmPM
h小时number(2)12
K小时 (0-11)number(2)0
k小时(1-24)number(2)0
H小时(0-23)number(2)0
m分钟number(2)30
snumber(2)55
yyyy-MM-dd年月日年月日2023-10-11
yyyy-MM-dd HH:mm:ss年月日 时分秒
2023-10-11 00:00:00
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

返回字符串的年份

  • 无标签