首页 > 解决方案 > row_number over ... 无界前行和无界后行之间的行在 spark 中不兼容

问题描述

我有一个类似的查询row_number over partition by column name order by column name rows between unbounded preceding and unbounded following

该查询在 hive 中运行,但在 Spark-SQL 和 spark(在 spark 1.6 和 2.0 中)中不起作用。

我想知道如何在火花代码中实现这个逻辑。
这个查询是否有效,在带有 row_number 函数的帧之间有行?

标签: apache-sparkexceptionapache-spark-sqlrow-number

解决方案


  • 窗口函数调用的正确语法需要在框架定义周围加上括号。
  • row_number需要ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW框架,在这种情况下它是默认的,所以可以省略。

结合:

row_number() OVER (PARTITION BY foo ORDER BY bar)

推荐阅读