从 PySpark 文档 rangeBetween
:
rangeBetween(start, end)
定义帧边界,从开始(包括)到结束(包括)。
start 和 end 都是相对于当前行的。例如,“0”表示“当前行”,“-1”表示当前行前一关,“5”表示当前行后五关。
参数:
- start - 边界开始,包括在内。如果这是 -sys.maxsize(或更低),则该帧是无界的。
- end - 边界结束,包括在内。如果这是 sys.maxsize(或更高),则该帧是无界的。 1.4 版中的新功能。
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 许可协议
RANGEbetween 查看 ORDER BY 子句以确定行是否包含在窗口中。
ROWSbetween 查看行的顺序。
RANGE between 检查 ORDER BY 是否在某个指定范围内,并将它们包含在窗口中。
ROWSbetween 将根据当前行周围的位置形成您的窗口(无论这些行的 ORDER BY 列的值如何)