I'm not able to get past this:
with the below code Im getting
TypeError: when() missing 1 required positional argument: 'value'
windowval=(Window.partitionBy('Location').orderBy('month_in_timestamp')
.rangeBetween(Window.unboundedPreceding, 0))
df1 = df.withColumn('NEW_COL', F.when(col('col1'). \
isin('data1', \
'data2', \
'data3', \
'data4',F.sum('col2').over(windowval))) \
,F.when(col('col1'). \
isin('data5', \
'data6', \
'data7', F.avg('col2').over(windowval))))
I tried this as well, and Im getting
java.lang.IllegalArgumentException: otherwise() can only be applied on a Column previously generated by when()
df_actual_ytd = df_tgt_reach.withColumn('NEW_COL', F.when(col('col1'). \
isin('data1', \
'data2', \
'data3', \
'data4',F.sum('col2').over(windowval))) \
.otherwise(F.avg('col2').over(windowval)))