Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2022 18:56:40

pe1601@mail.ru
Зарегистрирован: 2022-11-09
Сообщения: 20
Репутация: +  -1  -
Профиль   Адрес электронной почты  

вопрос по PySpark

дата фрейм (df):

 | id | sum |
------------
| 1  | 123 |
| 2  | 548 |
| 3  | 999 |
(это упрощенная модель реального). необходимо получить значение id с максимальным sum. Делаю так:

 max=df.agg({'sum':'max'}).collect()[0][0]
#теперь перебором...
for i in df.collect():
  if i[0]==max:
     print(i[0])
очевидно что это дно(, но как сделать правильно?

Отредактировано pe1601@mail.ru (Ноя. 16, 2022 18:57:11)

Офлайн

#2 Ноя. 16, 2022 20:26:02

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1356
Репутация: +  119  -
Профиль   Отправить e-mail  

вопрос по PySpark

pe1601@mail.ru
очевидно что это дно(, но как сделать правильно?
Так почитайте про датафреймы, все расписано

  
max_sum = df.loc[df['sum'] == df['sum'].max()]
print(max_sum['id'].values[0])

Офлайн

#3 Ноя. 16, 2022 21:13:28

pe1601@mail.ru
Зарегистрирован: 2022-11-09
Сообщения: 20
Репутация: +  -1  -
Профиль   Адрес электронной почты  

вопрос по PySpark

метод .loc? но это для библиотеки Pandas… а без нее можно обойтись?

Отредактировано pe1601@mail.ru (Ноя. 16, 2022 21:21:55)

Офлайн

#4 Ноя. 17, 2022 02:48:10

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

вопрос по PySpark

Плохо когда в гугле банят
https://stackoverflow.com/questions/33224740/best-way-to-get-the-max-value-in-a-spark-dataframe-column
Ведь тут ответы на ваш вопрос всеми методами включая sql диалект
А тут даже с картинкам
https://linuxhint.com/max-pyspark/



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Ноя. 17, 2022 08:21:19

pe1601@mail.ru
Зарегистрирован: 2022-11-09
Сообщения: 20
Репутация: +  -1  -
Профиль   Адрес электронной почты  

вопрос по PySpark

точно, спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version