CASE_OPERATION - Amazon Glue DataBrew
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

CASE_OPERATION

根据逻辑条件 CASE 的结果创建新列。CASE 操作遍历 CASE 条件并在满足第一个条件时返回值。条件为 true 后,该操作将停止读取并返回结果。如果没有条件为 true,则返回默认值。

参数
  • valueExpression:条件。

  • withExpressions:聚合结果的配置。

  • targetColumn:新创建的列的名称。

例 示例

{ "RecipeStep": { "Action": { "Operation": "CASE_OPERATION", "Parameters": { "valueExpression": "case when `column11` < `column.2` then 'result1' when `column2` < 'value2' then 'result2' else 'high' end", "targetColumn": "result.column" } } } }

有效聚合函数

下表显示了可以在 CASE 运算中使用的所有有效聚合函数。

列类型 状况 valueExpression withExpressions 返回值

数值

总和

`:sum.column.1`

[ { "name": "sum.column.1", "value": "sum(`column.1`)", "type": "aggregate" } ]

返回 column.1 的总和

平均值

`:mean.column.1`

[ { "name": "mean.column.1", "value": "avg(`column.1`)", "type": "aggregate" } ]

返回 column.1 的平均值。

平均绝对偏差

`:meanabsolutedeviation.column.1`

[ { "name": "meanabsolutedeviation.column.1", "value": "mean_absolute_deviation(`column.1`)", "type": "aggregate" } ]

返回 column.1 的平均绝对偏差

中位数

`:median.column.1`

[ { "name": "median.column.1", "value": "median(`column.1`)", "type": "aggregate" } ]

返回 column.1 的中位数

乘积

`:product.column.1`

[ { "name": "product.column.1", "value": "product(`column.1`)", "type": "aggregate" } ]

返回 column.1 的乘积

标准偏差

`:standarddeviation.column.1`

[ { "name": "standarddeviation.column.1", "value": "stddev(`column.1`)", "type": "aggregate" } ]

返回 column.1 的标准差

方差

`:variance.column.1`

[ { "name": "variance.column.1", "value": "variance(`column.1`)", "type": "aggregate" } ]

返回 column.1 的方差

均值标准误差

`:standarderrorofmean.column.1`

[ { "name": "standarderrorofmean.column.1", "value": "standard_error_of_mean(`column.1`)", "type": "aggregate" } ]

返回 column.1 平均值的标准误差

偏度

`:skewness.column.1`

[ { "name": "skewness.column.1", "value": "skewness(`column.1`)", "type": "aggregate" } ]

返回 column.1 的偏度

峰度

`:kurtosis.column.1`

[ { "name": "kurtosis.column.1", "value": "kurtosis(`column.1`)", "type": "aggregate" } ]

返回 column.1 的峰度

日期时间/数值/文本

计数

`:count.column.1`

[ { "name": "count.column.1", "value": "count(`column.1`)", "type": "aggregate" } ]

返回 column.1 中的总行数。

去重计数

`:countdistinct.column.1`

[ { "name": "count.column.1", "value": "count(distinct `column.1`)", "type": "aggregate" } ]

返回 column.1 中的去重总行数

最小值

`:min.column.1`

[ { "name": "min.column.1", "value": "min(`column.1`)", "type": "aggregate" } ]

返回 column.1 的最小值

最大值

`:max.column.1`

[ { "name": "max.column.1", "value": "max(`column.1`)", "type": "aggregate" } ]

返回 column.1 的最大值。

valueExpression 中的有效条件

下表显示了支持的条件和您可以使用的值表达式。

列类型 状况 valueExpression 描述

字符串

包含

contains(`column`, 'text')

用于测试列中的值是否包含文本的条件

不包含

!contains(`column`, 'text')

用于测试列中的值是否不包含文本的条件

匹配项

matches(`column`, 'pattern')

用于测试列中的值是否与模式匹配的条件

不匹配

!matches(`column`, 'pattern')

用于测试列中的值是否与模式不匹配的条件

开头为

startsWith(`column`, 'text')

用于测试列中的值是否以文本开头的条件

开头不是

!startsWith(`column`, 'text')

用于测试列中的值是否不以文本开头的条件

结尾为

endsWith(`column`, 'text')

用于测试列中的值是否以文本结尾的条件

不以以下值结尾

!endsWith(`column`, 'text')

用于测试列中的值是否不以文本结尾的条件

数值

小于

`column` < number

用于测试列中的值是否小于数字的条件

小于或等于

`column` <= number

用于测试列中的值是否小于或等于数字的条件

大于

`column` > number

用于测试列中的值是否大于数字的条件

大于或等于

`column` >= number

用于测试列中的值是否大于或等于数字的条件

介于

isBetween(`column`, minNumber, maxNumber)

用于测试列中的值是否介于 minNumber 和 maxNumber 之间的条件

不在二者之间

!isBetween(`column`, minNumber, maxNumber)

用于测试列中的值是否不在 minNumber 和 maxNumber 之间的条件

布尔值

为 true

`column` = TRUE

用于测试列中的值是否为布尔值 TRUE 的条件

为 false

`column` = FALSE

用于测试列中的值是否为布尔值 FALSE 的条件

日期/时间戳

早于

`column` < 'date'

用于测试列中的值是否早于日期的条件

早于或等于

`column` <= 'date'

用于测试列中的值是否早于或等于日期的条件

晚于

`column` > 'date'

用于测试列中的值是否晚于日期的条件

晚于或等于

`column` >= 'date'

用于测试列中的值是否晚于或等于日期的条件

字符串/数值/日期/时间戳

正好是

`column` = 'value'

用于测试列中的值是否正好是值的条件

不是

`column` != 'value'

用于测试列中的值是否不是值的条件

缺失

isMissing(`column`)

用于测试列中的值是否缺失的条件

未缺失

!isMissing(`column`)

用于测试列中的值是否未缺失的条件

有效

isValid(`column`, datatype)

用于测试列中的值是否有效的条件(该值属于数据类型或可以转换为数据类型)

无效

!isValid(`column`, datatype)

用于测试列中的值是否无效的条件(该值属于数据类型或可以转换为数据类型)

嵌套

缺失

isMissing(`column`)

用于测试列中的值是否缺失的条件

未缺失

!isMissing(`column`)

用于测试列中的值是否未缺失的条件

有效

isValid(`column`, datatype)

用于测试列中的值是否有效的条件(该值属于数据类型或可以转换为数据类型)

无效

!isValid(`column`, datatype)

用于测试列中的值是否无效的条件(该值属于数据类型或可以转换为数据类型)