如何接近pyspark中某一特定行的行
我想获得给定一个特定行的近行。例如 给出两个数据帧:如何接近pyspark中某一特定行的行,pyspark,Pyspark,我想获得给定一个特定行的近行。例如 给出两个数据帧: User time B 2 A 3 User time A 1 B 2 A 3 D 6 E 7 G 10 D 11 第一个是特定的行,第二个是整个表,让我们将窗口大小设置为1。因此,结果如下所示: User time A 1 B 2 A 3 User time B 2 A 3 D 6 但是我怎么能得到这个?谢谢 我已经解决了这个问题。其实很简单。如果有人遇到此问题,请使用
User time
B 2
A 3
User time
A 1
B 2
A 3
D 6
E 7
G 10
D 11
第一个是特定的行,第二个是整个表,让我们将窗口大小设置为1。因此,结果如下所示:
User time
A 1
B 2
A 3
User time
B 2
A 3
D 6
但是我怎么能得到这个?谢谢 我已经解决了这个问题。其实很简单。如果有人遇到此问题,请使用窗口和窗口之间的行功能。您可以使用窗口上的超前/滞后。为此,需要订购数据帧。假设您有另一列“X”
您的示例的问题是,数据帧不是,并且只要您不提供允许排序的列(例如,行号),结果可能不同。表是按时间排序的
from pyspark.sql.functions import Window, lag, lead
df.withColumn("c_1", lead("time").over(Window(partitionBy("user").orderBy("X"))))