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

BOOLEAN_OPERATION

根据逻辑条件 IF 的结果创建新列。如果布尔表达式为 true,则返回 true 值;如果布尔表达式为 false,则返回 false 值,或者返回自定义值。

参数
  • trueValueExpression:满足条件时的结果。

  • falseValueExpression:未满足条件时的结果。

  • valueExpression:布尔值条件。

  • withExpressions:聚合结果的配置。

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

您可以在 trueValueExpression、falseValueExpression 和 valueExpression 中使用常量值、列引用和聚合结果。

例 示例:常量值

保持不变的值,例如数字或句子。

{ "RecipeStep": { "Action": { "Operation": "BOOLEAN_OPERATION", "Parameters": { "trueValueExpression": "It is true.", "falseValueExpression": "It is false.", "valueExpression": "`column.1` < 2000", "targetColumn": "result.column" } } } }
例 示例:列引用

数据集中列的值。

{ "RecipeStep": { "Action": { "Operation": "BOOLEAN_OPERATION", "Parameters": { "trueValueExpression": "`column.2`", "falseValueExpression": "`column.3`", "valueExpression": "`column.1` < `column.4`", "targetColumn": "result.column" } } } }
例 示例:聚合结果

聚合函数计算的值。聚合函数对列执行计算,并返回单个值。

{ "RecipeStep": { "Action": { "Operation": "BOOLEAN_OPERATION", "Parameters": { "trueValueExpression": "`:mincolumn.2`", "falseValueExpression": "`:maxcolumn.3`", "valueExpression": "`column.1` < `:avgcolumn.4`", "withExpressions": "[{\"name\":\"mincolumn.2\",\"value\":\"min(`column.2`)\",\"type\":\"aggregate\"},{\"name\":\"maxcolumn.3\",\"value\":\"max(`column.3`)\",\"type\":\"aggregate\"},{\"name\":\"avgcolumn.4\",\"value\":\"avg(`column.4`)\",\"type\":\"aggregate\"}]", "targetColumn": "result.column" } } } }

用户需要通过转义将 JSON 转换为字符串。

请注意,trueValueExpression、falseValueExpression 和 valueExpression 中的参数名称必须与 withExpressions 中的名称相匹配。要使用某些列的聚合结果,您需要为它们创建参数并提供聚合函数。

例 示例:
{ "RecipeStep": { "Action": { "Operation": "BOOLEAN_OPERATION", "Parameters": { "trueValueExpression": "It is true.", "falseValueExpression": "It is false.", "valueExpression": "`column.1` < 2000", "targetColumn": "result.column" } } } }
例 示例:and/or

您可以使用 and 和 or 组合多个条件。

{ "RecipeStep": { "Action": { "Operation": "BOOLEAN_OPERATION", "Parameters": { "trueValueExpression": "It is true.", "falseValueExpression": "It is false.", "valueExpression": "`column.1` < 2000 and `column.2` >= `column.3", "targetColumn": "result.column" } } } } { "RecipeStep": { "Action": { "Operation": "BOOLEAN_OPERATION", "Parameters": { "trueValueExpression": "`column.4`", "falseValueExpression": "`column.5`", "valueExpression": "startsWith(`column1`, 'value1') or endsWith(`column2`, 'value2')", "targetColumn": "result.column" } } } }

有效聚合函数

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

列类型 状况 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)

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