как я могу получить рядом ряды возле одного конкретного ряда в pyspark - PullRequest
0 голосов
/ 13 октября 2019

Я хочу получить ближайшие ряды, заданные одной конкретной строкой. Например, дайте два фрейма данных:

User time
B    2
A    3

User time
A   1
B   2
A   3
D   6
E   7
G   10
D   11

Первая - это конкретные строки, а вторая - вся таблица, давайте установим около размера окна значение 1. Следовательно, результат show будет следующим:

User time
A   1
B   2
A   3

User time
B   2
A   3
D   6

но как я могу получить это? Спасибо ..

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Вы можете использовать опережение / отставание над окном. Для этого ваш фрейм данных должен быть заказан. давайте предположим, что у вас есть еще один столбец "X".

from pyspark.sql.functions import Window, lag, lead
df.withColumn("c_1", lead("time").over(Window(partitionBy("user").orderBy("X"))))
0 голосов
/ 15 октября 2019

Я решил эту проблему. На самом деле это легко. Если кто-то сталкивается с этой проблемой, пожалуйста, используйте функции rowBetween и window.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...