Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PySpark:查找项目是否在前5名流行项中_Python_Dataframe_Apache Spark_Pyspark_Apache Spark Sql - Fatal编程技术网

Python PySpark:查找项目是否在前5名流行项中

Python PySpark:查找项目是否在前5名流行项中,python,dataframe,apache-spark,pyspark,apache-spark-sql,Python,Dataframe,Apache Spark,Pyspark,Apache Spark Sql,我有这样的销售清单(pySpark): 所以,我想得到一个新的列:按购买数量的项目位置。一天中最受欢迎的项目将有排名1等。我已经尝试实现窗口功能,但不知道如何正确执行。最好的方法是什么?谢谢。谢谢!但我把第一行改成了。。。partitionBy('date','productId')。。。然后成功了,谢谢你!但我把第一行改成了。。。partitionBy('date','productId')。。。然后它成功了。 import pyspark.sql.functions as F count_

我有这样的销售清单(pySpark):


所以,我想得到一个新的列:按购买数量的项目位置。一天中最受欢迎的项目将有排名1等。我已经尝试实现窗口功能,但不知道如何正确执行。最好的方法是什么?谢谢。

谢谢!但我把第一行改成了。。。partitionBy('date','productId')。。。然后成功了,谢谢你!但我把第一行改成了。。。partitionBy('date','productId')。。。然后它成功了。
import pyspark.sql.functions as F

count_per_day = F.count('productId').over(Window.partitionBy('date')).alias('count_per_day')
df = df.select('*', count_per_day)
rank = F.rank().over(Window.partitionBy('date').orderBy(F.col('count_per_day').desc())).alias('rank')
df = df.select('*', rank)
import pyspark.sql.functions as F

count_per_day = F.count('productId').over(Window.partitionBy('date')).alias('count_per_day')
df = df.select('*', count_per_day)
rank = F.rank().over(Window.partitionBy('date').orderBy(F.col('count_per_day').desc())).alias('rank')
df = df.select('*', rank)