rowsBetween 和 rangeBetween 有什么区别?

新手上路,请多包涵

从 PySpark 文档 rangeBetween

rangeBetween(start, end)

定义帧边界,从开始(包括)到结束(包括)。

start 和 end 都是相对于当前行的。例如,“0”表示“当前行”,“-1”表示当前行前一关,“5”表示当前行后五关。

参数:

  • start - 边界开始,包括在内。如果这是 -sys.maxsize(或更低),则该帧是无界的。
  • end - 边界结束,包括在内。如果这是 sys.maxsize(或更高),则该帧是无界的。 1.4 版中的新功能。

rowsBetween

rowsBetween(start, end)

定义帧边界,从开始(包括)到结束(包括)。

start 和 end 都是当前行的相对位置。例如,“0”表示“当前行”,“-1”表示当前行之前的行,“5”表示当前行之后的第五行。

参数:

  • start - 边界开始,包括在内。如果这是 -sys.maxsize(或更低),则该帧是无界的。
  • end - 边界结束,包括在内。如果这是 sys.maxsize(或更高),则该帧是无界的。 1.4 版中的新功能。

对于 rangeBetween 例如,“1 off”与“1 row”有何不同?

原文由 Evan Zamir 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

RANGEbetween 查看 ORDER BY 子句以确定行是否包含在窗口中。

ROWSbetween 查看行的顺序。

RANGE between 检查 ORDER BY 是否在某个指定范围内,并将它们包含在窗口中。

ROWSbetween 将根据当前行周围的位置形成您的窗口(无论这些行的 ORDER BY 列的值如何)

原文由 Arne Huang 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进