输入 | 一个输入端口,用于接收数据集。 |
---|---|
输出 | 一个输出端口,用于输出派生列的结果。 |
设置派生列的参数:
设置说明如下:
参数 | 说明 |
---|---|
添加表达式 | ![]()
|
修改已定义的派生列列名 | 在列表区选择表达式,单击 修改 按钮后,修改列名再单击 增加 按钮。 |
目前派生列支持的函数有:
函数名称 | 函数及示例 | 说明 |
---|---|---|
累积 | sum(<column>) over(partition by <columns> order by <columns>) | 对数字型字段进行累计计算。
|
字符拼接 (拼接符) | concat_ws("sep",str1,str2,...,strN) | 通过sep连接符将字符串拼接。
|
字符拼接 | concat(str1, str2, ..., strN) | 不需要连接符,直接将字符串连接。 str:表示连接的字符。 |
字符截取 | substring(<column>, pos[, len]) | 从字段中截取指定位置的len个字符。
|
小数点保留 | format_number(<column>, num) | 保留浮点型字段小数点位数。
|
内容提取(年) | year(<column>) | 截取时间字段中的年信息。 <column>:表示截取的字段; |
内容提取(月) | month(<column>) | 截取时间字段中的月信息。 <column>:表示截取的字段; |
内容提取(日) | day(<column>) | 截取时间字段中的日信息。 <column>:表示截取的字段; |
内容提取(时) | hour(<column>) | 截取时间字段中的时信息。 <column>:表示截取的字段; |
内容提取(分) | minute(<column>) | 截取时间字段中的分信息。 |
内容提取(秒) | second(<column>) | 截取时间字段中的秒信息。 <column>:表示截取的字段; |
向上取整 | ceiling(<column>) | 获取大于或等于取整字段的最小整数。 |
向下取整 | floor(<column>) | 获取小于或等于取整字段的最大整数。 |
四舍五入 | round(<column>) | 获取四舍五入后的整数。 |
行最小值 | least(<column>,<column>,<column>) | 获取指定行中的最小值。 <column>:表示用来比较最小值的字段,默认三个,可以有多个字段。 |
行最大值 | greatest(<column>,<column>,<column>) | 获取指定行中的最大值。 <column>:表示用来比较最大值的字段,默认三个,可以有多个字段。 |
更多函数可参考 Spark SQL 内置函数。
1、原先文本数据源有1000条数据,想要获取Date字段中关于年份的信息,选择派生列节点,表达式为“year(Date)”。
2、输出结果如图: