Gunicorn + jwilder ~ 503 connect () не удалось (111: соединение отказано) при подключении к восходящему каналу

Вы можете использовать функции Window для создания столбца ранга на основе value, разделенного на group_id:

from pyspark.sql.window import Window
from pyspark.sql.functions import rank, dense_rank
# Define window
window = Window.partitionBy(df['group_id']).orderBy(df['value'])
# Create column
df.select('*', rank().over(window).alias('index')).show()
+--------+-----+-----+
|group_id|value|index|
+--------+-----+-----+
|       1| -1.7|    1|
|       1|  0.0|    2|
|       1|  1.3|    3|
|       1|  2.7|    4|
|       1|  3.4|    5|
|       2|  0.8|    1|
|       2|  2.3|    2|
|       2|  5.9|    3|
+--------+-----+-----+

. Поскольку вы сначала выбираете '*', вы сохраняете все остальные переменные, используя вышеуказанный код. Однако ваш второй пример показывает, что вы ищете функцию dense_rank(), которая дает в качестве столбца рангов без пробелов:

df.select('*', dense_rank().over(window).alias('index'))
1
задан Budi Mulyo 25 March 2019 в 05:51
поделиться