Filter array elements(过滤数组元素(Filter array elements))¶
Supported in: Batch, Streaming
Filters an array based on the filter expression. Note, array index starts at 1.
Expression categories: Array
Declared arguments¶
- Array: Array to be filtered.
Expression\> - Expression to filter: If the expression evaluates to true for a given element, the element will be kept, if false the element will be removed.
Expression\
Type variable bounds: T accepts AnyType
Output type: Array\
Examples¶
Example 1: Base case¶
Argument values:
- Array:
array - Expression to filter:
isNotNull(
expression:element,
)
| array | Output |
|---|---|
| [ 2, 5, null, 11 ] | [ 2, 5, 11 ] |
Example 2: Base case¶
Argument values:
- Array:
array - Expression to filter:
lessThanOrEquals(
left:element,
right: 10,
)
| array | Output |
|---|---|
| [ 2, 5, null, 11 ] | [ 2, 5 ] |
Example 3: Base case¶
Argument values:
- Array:
array - Expression to filter:
lessThanOrEquals(
left:element,
right: 10,
)
| array | Output |
|---|---|
| [ 2, 5, 7, 11, 12, 15 ] | [ 2, 5, 7 ] |
Example 4: Base case¶
Description: Note that array index starts at 1.
Argument values:
- Array:
array - Expression to filter:
equals(
left:element,
right:elementIndex,
)
| array | Output |
|---|---|
| [ 1, -1, -2, 4, -5 ] | [ 1, 4 ] |
Example 5: Base case¶
Argument values:
- Array:
array - Expression to filter:
stringContains(
expression:element,
ignoreCase: false,
value: hello,
)
| array | Output |
|---|---|
| [ hello world, hello, world ] | [ hello world, hello ] |
Example 6: Base case¶
Argument values:
- Array:
array - Expression to filter:
lessThanOrEquals(
left:
add(
expressions: [element, 4],
),
right: 10,
)
| array | Output |
|---|---|
| [ 2, 5, 7, 11, 12, 15 ] | [ 2, 5 ] |
Example 7: Null case¶
Argument values:
- Array:
array - Expression to filter:
lessThanOrEquals(
left:element,
right: 10,
)
| array | Output |
|---|---|
| null | null |
中文翻译¶
过滤数组元素(Filter array elements)¶
支持:批处理(Batch)、流处理(Streaming)
根据过滤表达式对数组进行过滤。注意,数组索引从 1 开始。
表达式类别: 数组(Array)
声明的参数¶
- 数组(Array): 待过滤的数组。
表达式\> - 过滤表达式(Expression to filter): 若表达式对某个元素求值为 true,则保留该元素;若为 false,则移除该元素。
表达式\
类型变量边界: T 接受任意类型(AnyType)
输出类型: Array\
示例¶
示例 1:基础情况¶
参数值:
- 数组:
array - 过滤表达式:
isNotNull(
expression:element,
)
| array | 输出 |
|---|---|
| [ 2, 5, null, 11 ] | [ 2, 5, 11 ] |
示例 2:基础情况¶
参数值:
- 数组:
array - 过滤表达式:
lessThanOrEquals(
left:element,
right: 10,
)
| array | 输出 |
|---|---|
| [ 2, 5, null, 11 ] | [ 2, 5 ] |
示例 3:基础情况¶
参数值:
- 数组:
array - 过滤表达式:
lessThanOrEquals(
left:element,
right: 10,
)
| array | 输出 |
|---|---|
| [ 2, 5, 7, 11, 12, 15 ] | [ 2, 5, 7 ] |
示例 4:基础情况¶
描述: 注意数组索引从 1 开始。
参数值:
- 数组:
array - 过滤表达式:
equals(
left:element,
right:elementIndex,
)
| array | 输出 |
|---|---|
| [ 1, -1, -2, 4, -5 ] | [ 1, 4 ] |
示例 5:基础情况¶
参数值:
- 数组:
array - 过滤表达式:
stringContains(
expression:element,
ignoreCase: false,
value: hello,
)
| array | 输出 |
|---|---|
| [ hello world, hello, world ] | [ hello world, hello ] |
示例 6:基础情况¶
参数值:
- 数组:
array - 过滤表达式:
lessThanOrEquals(
left:
add(
expressions: [element, 4],
),
right: 10,
)
| array | 输出 |
|---|---|
| [ 2, 5, 7, 11, 12, 15 ] | [ 2, 5 ] |
示例 7:空值情况¶
参数值:
- 数组:
array - 过滤表达式:
lessThanOrEquals(
left:element,
right: 10,
)
| array | 输出 |
|---|---|
| null | null |