【发布时间】:2016-10-30 13:54:32
【问题描述】:
为了排名,我需要让 row_number 是一个 pyspark 数据框。我看到pyspark的windows函数中有row_number函数,但这需要使用HiveContext。
我试图用 HiveContext 替换 sqlContext
import pyspark
self.sc = pyspark.SparkContext()
#self.sqlContext = pyspark.sql.SQLContext(self.sc)
self.sqlContext = pyspark.sql.HiveContext(self.sc)
但它现在抛出异常 TypeError: 'JavaPackage' object is not callable 您能否帮助操作 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...|
谢谢。
【问题讨论】:
标签: python apache-spark dataframe pyspark