【发布时间】:2020-04-03 20:00:30
【问题描述】:
我想在 PySpark 中转换以下 SAS 代码:
SAS:
proc rank data = INP(where = (col= 1))
out = RESULT groups = 3 descending ;
var Col1
Col2
Col3
Col4;
ranks R_Col1 F_Col2 M_Col3 O_Col4 ;
run ;
我正在尝试使用下面的 PySpark 代码实现上述目标,但出现“DataFrame”对象没有属性“apply”的错误 PySpark:
def grouping(data):
dec=pd.qcut(data['Col1','Col2','Col3','Col4'],3,labels=False)
data['ranks']=dec
return data
RESULT =INP.apply(grouping)
不胜感激!
谢谢
【问题讨论】:
-
这不是 pyspark 代码。您正在使用来自 pandas 的
qcut(),pyspark 不支持它。也就是说,还有其他方法可以实现您想要的。查看 pyspark 函数文档以获取更多信息。你想通过 ntile 或在那里排名。