跳转至

Array sort by struct key(按结构体键排序数组(Array sort by struct key))

Supported in: Batch, Streaming

Returns a sorted array of the given input array of structs sorted by the values of the given struct keys.

Expression categories: Array

Declared arguments

  • Input array: Input array of structs to be sorted.
    Expression\>
  • Sort keys: Struct keys to sort array by in order of sort priority. Sort nested struct elements with multiple entries like ['author', 'age'].
    List\>>

Output type: Array\

Examples

Example 1: Base case

Argument values:

  • Input array: [ {
    age: 20,
    }, {
    age: 10,
    }, {
    age: 30,
    } ]
  • Sort keys: [(age, ASCENDING)]

Output: [ {
age: 10,
}, {
age: 20,
}, {
age: 30,
} ]


Example 2: Base case

Argument values:

  • Input array: [ {
    age: 20,
    }, {
    age: 10,
    }, {
    age: 30,
    } ]
  • Sort keys: [(age, DESCENDING)]

Output: [ {
age: 30,
}, {
age: 20,
}, {
age: 10,
} ]


Example 3: Base case

Argument values:

  • Input array: [ {
    age: 20,
    height: 77,
    }, {
    age: 20,
    height...
  • Sort keys: [(age, ASCENDING), (height, DESCENDING)]

Output: [ {
age: 10,
height: 80,
}, {
age: 10,
height...


Example 4: Base case

Argument values:

  • Input array: [ {
    age: 20,
    height: 77,
    }, {
    age: 20,
    height...
  • Sort keys: [(age, ASCENDING), (height, ASCENDING)]

Output: [ {
age: 10,
height: 65,
}, {
age: 10,
height...


Example 5: Base case

Argument values:

  • Input array: [ {
    subStructKey: {
    age: 20,
    },
    }, {
    subStructKey: {
    age: 10,
    },
    }, {
    subStructKey: {
    age: 30,
    },
    } ]
  • Sort keys: [(subStructKey.age, ASCENDING)]

Output: [ {
subStructKey: {
age: 10,
},
}, {
subStructKey: {
age: 20,
},
}, {
subStructKey: {
age: 30,
},
} ]


Example 6: Null case

Argument values:

  • Input array: [ {
    age: null,
    height: 77,
    }, {
    age: null,
     **...
  • Sort keys: [(age, ASCENDING)]

Output: [ {
age: null,
height: 77,
}, {
age: null,
 **...


Example 7: Null case

Argument values:

  • Input array: [ {
    age: 10,
    }, {
    age: null,
    }, {
    age: 30,
    } ]
  • Sort keys: [(age, ASCENDING)]

Output: [ {
age: null,
}, {
age: 10,
}, {
age: 30,
} ]


Example 8: Null case

Argument values:

  • Input array: [ {
    age: 10,
    }, {
    age: null,
    }, {
    age: 30,
    } ]
  • Sort keys: [(age, DESCENDING)]

Output: [ {
age: 30,
}, {
age: 10,
}, {
age: null,
} ]



中文翻译


按结构体键排序数组(Array sort by struct key)

支持:批处理(Batch)、流处理(Streaming)

根据指定结构体键(struct keys)的值,对输入的结构体数组进行排序,并返回排序后的数组。

表达式类别: 数组(Array)

声明的参数

  • 输入数组(Input array): 待排序的结构体数组。
    表达式\>
  • 排序键(Sort keys): 按排序优先级顺序,用于对数组进行排序的结构体键。如需对嵌套结构体元素排序,可使用多个条目,例如 ['author', 'age']。
    列表\<元组\>>

输出类型: Array\

示例

示例 1:基础情况

参数值:

  • 输入数组: [ {
    age: 20,
    }, {
    age: 10,
    }, {
    age: 30,
    } ]
  • 排序键: [(age, ASCENDING)]

输出: [ {
age: 10,
}, {
age: 20,
}, {
age: 30,
} ]


示例 2:基础情况

参数值:

  • 输入数组: [ {
    age: 20,
    }, {
    age: 10,
    }, {
    age: 30,
    } ]
  • 排序键: [(age, DESCENDING)]

输出: [ {
age: 30,
}, {
age: 20,
}, {
age: 10,
} ]


示例 3:基础情况

参数值:

  • 输入数组: [ {
    age: 20,
    height: 77,
    }, {
    age: 20,
    height...
  • 排序键: [(age, ASCENDING), (height, DESCENDING)]

输出: [ {
age: 10,
height: 80,
}, {
age: 10,
height...


示例 4:基础情况

参数值:

  • 输入数组: [ {
    age: 20,
    height: 77,
    }, {
    age: 20,
    height...
  • 排序键: [(age, ASCENDING), (height, ASCENDING)]

输出: [ {
age: 10,
height: 65,
}, {
age: 10,
height...


示例 5:基础情况

参数值:

  • 输入数组: [ {
    subStructKey: {
    age: 20,
    },
    }, {
    subStructKey: {
    age: 10,
    },
    }, {
    subStructKey: {
    age: 30,
    },
    } ]
  • 排序键: [(subStructKey.age, ASCENDING)]

输出: [ {
subStructKey: {
age: 10,
},
}, {
subStructKey: {
age: 20,
},
}, {
subStructKey: {
age: 30,
},
} ]


示例 6:空值情况

参数值:

  • 输入数组: [ {
    age: null,
    height: 77,
    }, {
    age: null,
     **...
  • 排序键: [(age, ASCENDING)]

输出: [ {
age: null,
height: 77,
}, {
age: null,
 **...


示例 7:空值情况

参数值:

  • 输入数组: [ {
    age: 10,
    }, {
    age: null,
    }, {
    age: 30,
    } ]
  • 排序键: [(age, ASCENDING)]

输出: [ {
age: null,
}, {
age: 10,
}, {
age: 30,
} ]


示例 8:空值情况

参数值:

  • 输入数组: [ {
    age: 10,
    }, {
    age: null,
    }, {
    age: 30,
    } ]
  • 排序键: [(age, DESCENDING)]

输出: [ {
age: 30,
}, {
age: 10,
}, {
age: null,
} ]