本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
布尔运算
根据逻辑条件 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` | 
 | 返回以下项的总和  | 
| 平均值 | `: mean.column.1` | 
 | 返回的均值  | |
| 平均绝对偏差 | `:mean 绝对偏差。column.1` | 
 | 返回的平均绝对偏差  | |
| 中位数 | `: median.column.1` | 
 | 返回的中位数  | |
| 产品 | `: product.column.1` | 
 | 返回的产品  | |
| 标准差 | `: 标准差。column.1` | 
 | 返回的标准差  | |
| 方差 | `: variance.column.1` | 
 | 返回方差  | |
| 平均值的标准误差 | `: standarderrorofmean.column.1` | 
 | 返回均值的标准误差  | |
| 偏度 | `: skewness.column.1` | 
 | 返回的偏度  | |
| 峰度 | `:kurtosis.column.1` | 
 | 返回的峰度  | |
| Datetime/Numeric/Text | 计数 | `: count.column.1` | 
 | 返回中的总行数  | 
| 去重计数 | `: countdistict.column.1` | 
 | 返回中不同行的总数  | |
| 最小值 | `: min.column.1` | 
 | 返回最小值  | |
| 最大值 | `: max.column.1` | 
 | 返回的最大值  | 
ValueExpression 中的有效条件
下表显示了支持的条件和您可以使用的值表达式。
| 列类型 | 状况 | 值表达式 | 描述 | 
|---|---|---|---|
| 字符串 | 包含 | 包含(“列”,“文本”) | 用于测试列中的值是否包含文本的条件 | 
| 不包含 | ! 包含(“列”,“文本”) | 用于测试列中的值是否不包含文本的条件 | |
| 匹配项 | 匹配(“列”、“模式”) | 测试列中的值是否与模式匹配的条件 | |
| 不匹配 | ! 匹配(“列”、“模式”) | 用于测试列中的值是否与模式不匹配的条件 | |
| 开始于 | 开头为(“列”,“文本”) | 用于测试列中的值是否以文本开头的条件 | |
| 开头不是 | ! 开头为(“列”,“文本”) | 用于测试列中的值是否不是以文本开头的条件 | |
| 结束于 | endSwith(“列”,“文本”) | 测试列中的值是否以文本结尾的条件 | |
| 结尾不是 | ! endSwith(“列”,“文本”) | 用于测试列中的值是否不以文本结尾的条件 | |
| 数值 | Less than | `列` < 数字 | 用于测试列中的值是否小于数字的条件 | 
| 小于或等于 | `列` <= 数字 | 用于测试列中的值是否小于或等于数字的条件 | |
| Greater than | “列” > 数字 | 用于测试列中的值是否大于数字的条件 | |
| 大于或等于 | `列` >= 数字 | 用于测试列中的值是否大于或等于数字的条件 | |
| 介于 | isBetween(“列”、minNumber、maxNumber) | 用于测试列中的值是否介于 minNumber 和 maxNumber 之间的条件 | |
| 不是介于两者之间 | ! isBetween(“列”、minNumber、maxNumber) | 用于测试列中的值是否不在 minNumber 和 maxNumber 之间的条件 | |
| 布尔值 | 是真的 | `column` = TRUE | 测试列中的值是否为布尔值 TRUE 的条件 | 
| 是假的 | `column` = FALSE | 测试列中的值是否为布尔值 FALSE 的条件 | |
| 日期/时间戳 | 早于 | `列` < '日期' | 用于测试列中的值是否早于日期的条件 | 
| 早于或等于 | `列` <= '日期' | 用于测试列中的值是否早于或等于日期的条件 | |
| 晚于 | `列` > '日期' | 用于测试列中的值是否晚于日期的条件 | |
| 晚于或等于 | `列` >= '日期' | 用于测试列中的值是否晚于或等于日期的条件 | |
| String/Numeric/Date/Timestamp | 正是 | `列` = '值' | 测试列中的值是否正好为值的条件 | 
| Is not | `专栏`! = 'value' | 用于测试列中的值是否不是值的条件 | |
| 不见了 | 缺失(“列”) | 测试列中是否缺少值的条件 | |
| 没有丢失 | ! 缺失(“列”) | 用于测试列中值是否未丢失的条件 | |
| 是有效的 | 是有效的(“列”,数据类型) | 用于测试列中的值是否有效的条件(该值属于数据类型或可以转换为数据类型) | |
| 无效 | ! 是有效的(“列”,数据类型) | 用于测试列中的值是否无效的条件(该值属于数据类型或可以转换为数据类型) | |
| 嵌套 | 不见了 | 缺失(“列”) | 测试列中是否缺少值的条件 | 
| 没有丢失 | ! 缺失(“列”) | 用于测试列中值是否未丢失的条件 | |
| 是有效的 | 是有效的(“列”,数据类型) | 用于测试列中的值是否有效的条件(该值属于数据类型或可以转换为数据类型) | |
| 无效 | ! 是有效的(“列”,数据类型) | 用于测试列中的值是否无效的条件(该值属于数据类型或可以转换为数据类型) |