我正在計算數據幀中列的平均值,但它導致所有值爲零。有人可以幫我解釋爲什麼會發生這種情況嗎?以下是在轉換一列之前和之後的代碼和表格。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