You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写等效于Row_Rank()的Kusto语句?附Spark示例

Kusto等效实现方案

等效Kusto语句

// 模拟Spark中的输入数据集
datatable(Airport:string, Airline:string, Departures:int, Expected:int)
[
    'SEA', 'LH', 3, 2,
    'SEA', 'LY', 100, 3,
    'SEA', 'UA', 3, 2,
    'SEA', 'BA', 2, 1,
    'SEA', 'EL', 3, 2,
]
// 按Departures分区并生成连续序号
| extend row_number = row_number() over (partition by Departures order by Airline asc)
// 按Departures升序、序号升序排序,匹配预期输出的展示顺序
| sort by Departures asc, row_number asc

逻辑说明

  1. 数据构造:用datatable复刻Spark中createDataFrame创建的测试数据。
  2. 窗口逻辑映射:
    • Spark的Window.partitionBy("Departures")对应Kusto的partition by Departures,实现按Departures字段分组。
    • 原Spark代码中,同分区内的Departures值完全相同,dense_rank()实际生成连续唯一序号(与row_number()效果一致),因此Kusto直接使用row_number()即可匹配预期输出的row_number列。
    • 新增order by Airline asc是为了让同分区内的序号生成有固定规则(避免Kusto默认的无规则排序),如果需要完全匹配Spark输出的序号顺序,可根据实际需求调整排序字段。
  3. 结果排序:通过sort by确保最终输出的行顺序与预期一致。

内容的提问来源于stack exchange,提问作者John Stud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:02:20