Pyspark数据框从其他列及其中创建新列

时间:2017-08-04 02:05:38

标签: pyspark pyspark-sql

我有pyspark数据帧DF

现在我想创建一个具有以下条件的新列。

城市客户销售订单检查点

eee 20 20 1

b sfd 28 30 0

C sss 30 30 1

d zzz 35 40 0

DF = Df.withColumn("NewCol",func.when(DF.month == 1,DF.sales + DF.orders).otherwise(greatest(DF.sales,DF.orders))+ func.when(DF.checkpoint == 1,lit(0)).otherwise(func.lag("NewCol).over(Window.partitionBy(DF.city,DF.customer).orderBy(DF.city,DF.customer))))

我收到了一个错误,例如NewCol未定义,这是预期的。

请建议我这个?

1 个答案:

答案 0 :(得分:0)

创建了一个列     df = df.withColumn(“NewCol”,点亮(无))

for i in range(2):
    if i<=2:
      DF = Df.withColumn("NewCol",func.when(DF.month == 1,DF.sales + DF.orders).otherwise(greatest(DF.sales,DF.orders))+ func.when(DF.checkpoint == 1,lit(0)).otherwise(func.lag("NewCol).over(Window.partitionBy(DF.city,DF.customer).orderBy(DF.city,DF.customer))))</i)