View a markdown version of this page

BOOLEAN_OPERATION - AWS Glue DataBrew開發人員指南

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

BOOLEAN_OPERATION

根據邏輯條件 IF 的結果建立新的資料欄。如果布林表達式為 true,則傳回 true 值;如果布林表達式為 false,則傳回 false 值,或傳回自訂值。

Parameters
  • 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" } } } }
範例範例: 和/或

您可以使用 和 或 來合併多個條件。

{ "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

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

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

Datetime/Numeric/Text

計數

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

String

Contains

contains(`column`, 'text')

要測試資料欄中的值是否包含文字的條件

不包含

!contains(`column`, 'text')

要測試資料欄中的值是否不包含文字的條件

相符

matches(`column`, 'pattern')

要測試資料欄中的值是否符合模式的條件

不符合

!matches(`column`, 'pattern')

要測試資料欄中的值是否與模式不相符的條件

開頭為

startsWith(`column`, 'text')

測試資料欄中的值是否以文字開頭的條件

開頭不是

!startsWith(`column`, 'text')

要測試資料欄中的值是否不是以文字開頭的條件

Ends with

endsWith(`column`, 'text')

要測試資料欄中的值是否以文字結尾的條件

結尾不是

!endsWith(`column`, 'text')

要測試資料欄中的值是否以文字結尾的條件

數值

Less than

`column` < number

要測試資料欄中的值是否小於數字的條件

小於或等於

`column` <= number

要測試資料欄中的值是否小於或等於數字的條件

Greater than

`column` > 數字

要測試資料欄中的值是否大於數字的條件

大於或等於

`column` >= number

要測試資料欄中的值是否大於或等於數字的條件

介於

isBetween(`column`、minNumber、maxNumber)

要測試資料欄中的值是否介於 minNumber 和 maxNumber 之間的條件

不在 之間

!isBetween(`column`、minNumber、maxNumber)

要測試資料欄中的值是否不在 minNumber 和 maxNumber 之間的條件

Boolean

為 true

`column` = TRUE

要測試資料欄中的值是否為布林值 TRUE 的條件

為 false

`column` = FALSE

要測試資料欄中的值是否為布林值 FALSE 的條件

日期/時間戳記

早於

`column` < 'date'

要測試資料欄中的值是否早於日期的條件

早於或等於

`column` <= 'date'

要測試資料欄中的值是否早於或等於日期的條件

晚於

`column` > 'date'

要測試資料欄中的值是否晚於日期的條件

大於或等於

`column` >= 'date'

要測試資料欄中的值是否晚於或等於日期的條件

String/Numeric/Date/時間戳記

完全是

`column` = 'value'

測試資料欄中的值是否為確切值的條件

Is not

`column` != 'value'

要測試資料欄中的值是否不是值的條件

遺失

isMissing(`column`)

測試資料欄中的值是否遺失的條件

未遺失

!isMissing(`column`)

測試資料欄中的值是否未遺失的條件

有效

isValid(`column`,資料類型)

測試資料欄中的值是否有效的條件 (該值為資料類型,或可轉換為資料類型)

無效

!isValid(`column`,資料類型)

測試資料欄中的值是否無效的條件 (該值為資料類型,或可轉換為資料類型)

巢狀

遺失

isMissing(`column`)

測試資料欄中的值是否遺失的條件

未遺失

!isMissing(`column`)

測試資料欄中的值是否未遺失的條件

有效

isValid(`column`,資料類型)

測試資料欄中的值是否有效的條件 (該值為資料類型,或可轉換為資料類型)

無效

!isValid(`column`,資料類型)

測試資料欄中的值是否無效的條件 (該值為資料類型,或可轉換為資料類型)