【发布时间】:2020-07-07 20:38:15
【问题描述】:
我在数据框中有列数量。我想在这个数据框中添加一个新列,每条记录都有min("Quantity")。我正在尝试在pyspark 中使用lit()。像下面的东西
df.withColumn("min_quant", lit(min(col("Quantity")))).show().
导致出现以下错误
grouping expressions sequence is empty, and `InvoiceNo` is not an aggregate function.
Wrap (min(`Quantity`) AS `min_quant`) in windowing function(s) or wrap
这是有效的:
df.withColumn("min_quant", lit(2)).show().
但是,我想要min(Quantity) 来代替这里的 2。我错过了什么吗?
【问题讨论】:
-
它是聚合函数,但你在平原上使用它。寻找聚合数据的方法。
-
我正在尝试将静态值 min(quantity) 添加到数据帧的所有行(假设最小数量为 5,我的所有行在 min_quant 列中的值应为 5)。就像我们如何将 current_date() 添加到 datafarme 的所有行 ----> df.withColumn("today", lit(current_date())).show(10,False)
-
我试图理解为什么我不能用聚合函数来做到这一点
标签: apache-spark apache-spark-sql aggregate-functions pyspark-sql pyspark-dataframes