ランク付けするために、私はrow_numberを取得する必要がpysparkデータフレームです。 pysparkのwindows関数にrow_number関数があることがわかりましたが、これはHiveContextを使う必要があります。 row_numberを取得する方法は、pysparkデータフレームです
は私がHiveContext import pyspark
self.sc = pyspark.SparkContext()
#self.sqlContext = pyspark.sql.SQLContext(self.sc)
self.sqlContext = pyspark.sql.HiveContext(self.sc)
でsqlContextを交換しようとしたが、それは今、例外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
私はいくつかの詳細を追加しました。今はっきりしていることを願って –