我想为每列找到1%le和99%le,并删除pyspark数据帧的相应行。 感谢
答案 0 :(得分:0)
您可以使用percent_rank()函数,例如,如果您有DataFrame,其中包含两列CREDIT和DEBIT,则可以计算额外列并使用它进行过滤。 您无法从DataFrame中删除行,只能过滤到新行。
from pyspark.sql.window import Window
from pyspark.sql.functions import percent_rank
df3=df.select('CREDIT','DEBIT', percent_rank().over(Window.orderBy(df.CREDIT)).alias("credit_perc"),percent_rank().over(Window.orderBy(df.DEBIT)).alias("debit_perc"))\
.where('debit_perc >=0.99 or debit_perc <=0.01 ').where('credit_perc >=0.99 or credit_perc <=0.91')