2017-08-04 121 views
0

我有pyspark數據框DFPyspark數據框從其他列創建新列並從中獲得

現在我想創建一個新的列,其條件如下。

城市客戶銷售訂單檢查點

一個EEE 20 20 1

b SFD 28 30 0

Ç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沒有被定義,這是預期的。

請給我推薦?

回答

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) 
相關問題