我正在计算数据帧中列的平均值,但它导致所有值为零。有人可以帮我解释为什么会发生这种情况吗?以下是在转换一列之前和之后的代码和表格。Pyspark:将平均值作为新列添加到DataFrame中
之前计算的平均值和增加“的意思是”列
result.select("dis_price_released").show(10)
+------------------+
|dis_price_released|
+------------------+
| 0.0|
| 4.0|
| 4.0|
| 4.0|
| 1.0|
| 4.0|
| 4.0|
| 0.0|
| 4.0|
| 0.0|
+------------------+
计算平均值和增加意味着柱
w = Window().partitionBy("dis_price_released").rowsBetween(-sys.maxsize, sys.maxsize)
df2 = result.withColumn("mean", avg("dis_price_released").over(w))
df2.select("dis_price_released", "mean").show(10)
+------------------+----+
|dis_price_released|mean|
+------------------+----+
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
| 0.0| 0.0|
+------------------+----+
什么'-sys.maxsize,sys.maxsize',你计算滚动平均值? – mtoto
另外,你为什么要用你想计算平均值的相同值来划分你的数据? – mtoto
@mtoto问你第一个问题是选择所有的行。并针对您的上述问题,选择特定的“dis_price_released”列。如果我错了,请纠正我。 – thetna