将SQL查询转换为PySpark数据帧查询(百分位排名计算)
我正在尝试将此SQL查询转换为PySpark DataFrame方法:将SQL查询转换为PySpark数据帧查询(百分位排名计算),pyspark,pyspark-dataframes,Pyspark,Pyspark Dataframes,我正在尝试将此SQL查询转换为PySpark DataFrame方法: SELECT id_profile, indications, PERCENT_RANK() OVER (PARTITION BY id_profile ORDER BY prediction DESC) AS rank FROM predictions 因此,id\u profile,指示和预测是我的预测数据帧中的列 我想我必须用Window方法来实现这一点,但我不知道该怎么做。试试这个: from pyspark.sq
SELECT id_profile, indications, PERCENT_RANK()
OVER (PARTITION BY id_profile ORDER BY prediction DESC) AS rank FROM predictions
因此,id\u profile
,指示
和预测
是我的预测
数据帧中的列
我想我必须用Window
方法来实现这一点,但我不知道该怎么做。试试这个:
from pyspark.sql import functions as F
from pyspark.sql.window import Window
w=Window().partitionBy("id_profile").orderBy(F.col("prediction").desc())
df.withColumn("rank", F.percent_rank().over(w))\
.select("id_profile","indications","rank")
谢谢你的回答!你知道这两种不同的数据处理方法是否应该具有相同的性能(速度)?速度不应该有差异