#sorting #pyspark #ranking
#сортировка #pyspark #Рейтинг
Вопрос:
Я пытаюсь выполнить глобальное ранжирование большого объема данных с помощью Pyspark.
Я искал в Интернете и нашел много ответов, используемых window:
window_rank = Window.orderBy(F.asc('score'))
scores_df = scores_df.withColumn('rank', F.row_number().over(window_rank))
Однако этот метод, похоже, перетасовал все данные в один рабочий узел, и, следовательно, он не является оптимальным для большого объема данных.
Существует ли распределенный способ выполнения задачи ранжирования в Pyspark?
Комментарии:
1. Как вы думаете, это возможно? Как вы можете ранжировать данные между несколькими узлами?
2. Похоже, что ранжирование данных между несколькими узлами было бы теоретически возможно, но это потребовало бы намного больше вычислений, чем объединение всех узлов.
3. У вас есть приблизительный метод?