pySpark中的派生列使用两列和上一行的值

时间:2018-12-20 08:10:43

标签: python apache-spark pyspark apache-spark-sql

我想在spark数据框上创建一列,并对两列进行操作。

我要创建列Areas,该列的计算公式为:

( (Pct_Buenos_Acum[i]-Pct_Buenos_Acum[i-1]) * (Pct_Malos_Acum[i]+Pct_Malos_Acum[i-1]) ) / 2

我已经尝试过了:

w = Window.rowsBetween(Window.unboundedPreceding, Window.currentRow)

df= df.withColumn('Areas', (( ( col('Pct_Acum_buenos')-col('Pct_Acum_buenos' ) )*(col('Pct_Acum_malos')+col('Pct_Acum_malos')))/2).over(w))

查找附上我到目前为止的照片 enter image description here

1 个答案:

答案 0 :(得分:1)

Here是一种访问pySpark中先前值的方法。顺其自然。

<div class='btnowwrap'>
<div class='btnow' id='btnow' title='SADA'>&#x267B;</div>
</div>