View a markdown version of this page

CASE_OPERATION - AWS Glue DataBrew開發人員指南

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

CASE_OPERATION

根據邏輯條件 CASE 的結果建立新的資料欄。案例操作會經歷案例條件,並在符合第一個條件時傳回值。一旦條件成立,操作就會停止讀取並傳回結果。如果沒有條件為 true,則會傳回預設值。

Parameters
  • 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" } } } }

有效的彙總函數

下表顯示可在案例操作中使用的所有有效彙總函數。

資料欄類型 條件 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`,資料類型)

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