如何根据PySpark两列的区别获得总数?



如何进行求和频率基于不同的ID &位置在PySpark吗?

感觉我需要通过ID和位置做窗口分区,然后添加频率,但不确定如何在Pyspark代码中编写此:

输入>
3

我认为你可以使用GroupBy函数。

yourInput.groupBy("ID",Location).sum("Frequency").alias("TotalFrequency").show(truncate=False)

注意:请查看pyspark中的聚合函数链接

只是一个简单的group by and sum:

import pyspark.sql.functions as F
df2 = df.groupBy('ID', 'Location').agg(F.sum('Frequency').alias('TotalFrequency'))

首先将dataframe创建为table然后可以从该表中进行查询然后使用常规查询

dataframe.createOrReplaceTempView("mytable")
"select id, location, sum(Frequency) from mytable
group by id, location"

最新更新