布尔运算 - AWS Glue DataBrew

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

布尔运算

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

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

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

  • valueExpression— 布尔条件。

  • withExpressions— 聚合结果的配置。

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

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

例 示例:常量值

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

{ "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 转换为字符串。

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

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

您可以使用 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" } } } }

有效的聚合函数

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

列类型 状况 值表达式 使用表达式 返回值

数值

总和

`: 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

平均绝对偏差

`:mean 绝对偏差。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

标准差

`: 标准差。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

去重计数

`: countdistict.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 中的有效条件

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

列类型 状况 值表达式 描述

字符串

包含

包含(“列”,“文本”)

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

不包含

! 包含(“列”,“文本”)

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

匹配项

匹配(“列”、“模式”)

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

不匹配

! 匹配(“列”、“模式”)

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

开始于

开头为(“列”,“文本”)

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

开头不是

! 开头为(“列”,“文本”)

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

结束于

endSwith(“列”,“文本”)

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

结尾不是

! endSwith(“列”,“文本”)

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

数值

Less than

`列` < 数字

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

小于或等于

`列` <= 数字

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

Greater than

“列” > 数字

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

大于或等于

`列` >= 数字

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

介于

isBetween(“列”、minNumber、maxNumber)

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

不介于

! isBetween(“列”、minNumber、maxNumber)

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

布尔值

true

`column` = TRUE

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

FALSE

`column` = FALSE

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

日期/时间戳

早于

`列` < '日期'

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

早于或等于

`列` <= '日期'

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

晚于

`列` > '日期'

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

晚于或等于

`列` >= '日期'

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

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

true

`列` = '值'

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

Is not

`专栏`! = 'value'

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

缺失值

缺失(“列”)

测试列中是否缺少值的条件

没有缺失值

! 缺失(“列”)

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

有效

是有效的(“列”,数据类型)

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

无效

! 是有效的(“列”,数据类型)

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

嵌套

缺失值

缺失(“列”)

测试列中是否缺少值的条件

没有缺失值

! 缺失(“列”)

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

有效

是有效的(“列”,数据类型)

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

无效

! 是有效的(“列”,数据类型)

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