データフレーム内の列の平均を計算していますが、すべての値がゼロになりました。なぜこれが起こっているのか誰かが私を助けることができますか?以下は、列の変換前後のコードと表です。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