关于pyspark中window()、partitionby().orderby()的输出

68de4m5k  于 2021-07-09  发布在  Spark
关注(0)|答案(0)|浏览(315)

我在运行一套程序

import pyspark
from pyspark.sql.window import Window
from pyspark.sql import functions as F
from pyspark.sql import SparkSession
from pyspark.sql.types import *
spark = SparkSession.builder.appName('SparkByExamples.com').getOrCreate()
list=[['f1','a','b','c',1],
     ['f1','b','d','m',0],
     ['f2','a','b','c',0],
     ['f2','b','d','m',0],
     ['f3','a','b','c',1],
     ['f3','b','d','m',1],
     ['f4','a','b','c',0],
      ['f4','b','d','m',0]]

df= spark.createDataFrame(list,['function_name','param1','param2','param3','result'])
df.show()


然后我就跑了

w=Window().partitionBy("function_name").orderBy(F.col("param1"),F.col("param2"),F.col("param3"))
dftest = df.withColumn("result_list", F.collect_list("result").over(w))
dftest.show()

结果显示如下,我的问题是,为什么在“函数名”列中,“f2”排在第一位; f4 命令如下 f2 ; f1 命令如下 f4 等等。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题