Чтобы ранжировать, мне нужно, чтобы row_number был фреймворком pyspark. Я видел, что в функции windows pyspark есть функция row_number, но это требует использования HiveContext.Как получить row_number является pyspark dataframe
Я попытался заменить sqlContext с HiveContext
import pyspark
self.sc = pyspark.SparkContext()
#self.sqlContext = pyspark.sql.SQLContext(self.sc)
self.sqlContext = pyspark.sql.HiveContext(self.sc)
Но теперь бросает исключение TypeError: объект «JavaPackage» не отозваны Можете ли вы помочь в любой операционной в HiveContext или получить номер строки в другой путь?
Пример данных: Я хочу получить первый ранг по моему прогнозу, а затем вычислить функцию потерь (ndcg) на основе этого рейтинга. Чтобы вычислить функцию потерь, я буду придерживаться ранжирования (т. Е. Положения предсказания при сортировке)
Итак, первым шагом является сортировка данных по pred, но тогда мне нужен счетчик работы отсортированных данных.
+-----+--------------------+
|label|pred|
+-----+--------------------+
| 1.0|[0.25313606997906...|
| 0.0|[0.40893413256608...|
| 0.0|[0.18353492079000...|
| 0.0|[0.77719741215204...|
| 1.0|[0.62766290642569...|
| 1.0|[0.40893413256608...|
| 1.0|[0.63084085591913...|
| 0.0|[0.77719741215204...|
| 1.0|[0.36752166787523...|
| 0.0|[0.40893413256608...|
| 1.0|[0.25528507573737...|
| 1.0|[0.25313606997906...|
Спасибо.
Я видел monotonically_increasing_id(), но это не то, что мне нужно. Мне нужен относительный рейтинг каждой строки. Более конкретно мне нужно суммировать значения столбца * его позиции. –
Вопрос может быть лучше понят, если вы предоставите образцы данных. – ShuaiYuan
Я добавил некоторые подробности. Надеюсь, теперь ясно –