Compartir a través de

映射数据流中的排序转换

适用于:Azure 数据工厂 Azure Synapse Analytics

数据流在 Azure 数据工厂和 Azure Synapse 管道中均可用。 本文适用于映射数据流。 如果不熟悉转换,请参阅介绍性文章使用映射数据流转换数据

借助排序转换,可对当前数据流上的传入行进行排序。 可以选择各个列,然后按升序或降序对其进行排序。

注意

映射数据流在 Spark 群集上执行,这些数据流跨多个节点和分区分布。 如果选择在后续转换中对数据进行重新分区,则可能会因为数据重排而丢失排序。 若要在数据流中维护排序顺序,最佳方法是在转换的“优化”选项卡中设置单个分区,并使排序转换尽可能接近接收器。

Configuration

排序设置

不区分大小写: 对字符串或文本字段排序时是否要忽略大小写

仅在分区中排序: 数据流在 Spark 上运行时,所有数据流都将划分为多个分区。 此设置仅对传入分区中的数据排序,不对整个数据流排序。

排序条件: 选择要排序的列以及排序顺序。 顺序决定排序优先级。 选择数据流的开头或结尾是否显示 null。

计算列

若要在排序前修改或提取列值,请将鼠标悬停在列上并选择“计算列”。 这将打开表达式生成器来为排序操作创建表达式,而不是使用列值。

数据流脚本

语法

<incomingStream>
    sort(
        desc(<sortColumn1>, { true | false }),
        asc(<sortColumn2>, { true | false }),
        ...
    ) ~> <sortTransformationName<>

示例

排序设置

以上排序配置的数据流脚本位于下面的代码片段中。

BasketballStats sort(desc(PTS, true),
    asc(Age, true)) ~> Sort1

排序后,建议使用聚合转换