【问题标题】:How to update a column in PySpark based on other column?如何根据其他列更新 PySpark 中的列?
【发布时间】:2018-09-21 21:27:08
【问题描述】:

我有一个包含“CUSTOMER_MAILID”、“OFFER_NAME”、“OFFER_ISAPPLIED”列的数据框。

样本数据:

+--------------------+--------------------+---------------+
|     CUSTOMER_MAILID|          OFFER_NAME|OFFER_ISAPPLIED|
+--------------------+--------------------+---------------+
|pushpendrakaushik...|Jaipur Pink Panth...|              N|
|pushpendrakaushik...|Jaipur Pink Panth...|              N|
|dr.kshitijmathur@...|                    |              N|
|spdadhichassociat...|                    |              N|
|vinod.gogia@herom...|Jaipur Pink Panth...|              N|
|prerak0401@gmail.com|                    |              N|
| garhwalsp@gmail.com|                    |              N|
|muditsharma1985@g...|                    |              N|
|  amit1185@gmail.com|Jaipur Pink Panth...|              N|

如果“OFFER_NAME”列具有某个值(Null 除外),我想用“Y”更新“OFFER_ISAPPLIED”列值。

我怎样才能实现它?

输出应该是这样的:

+--------------------+--------------------+---------------+
|     CUSTOMER_MAILID|          OFFER_NAME|OFFER_ISAPPLIED|
+--------------------+--------------------+---------------+
|pushpendrakaushik...|Jaipur Pink Panth...|              Y|
|pushpendrakaushik...|Jaipur Pink Panth...|              Y|
|dr.kshitijmathur@...|                    |              N|
|spdadhichassociat...|                    |              N|
|vinod.gogia@herom...|Jaipur Pink Panth...|              Y|
|prerak0401@gmail.com|                    |              N|
| garhwalsp@gmail.com|                    |              N|
|muditsharma1985@g...|                    |              N|
|  amit1185@gmail.com|Jaipur Pink Panth...|              Y|

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    用途:

    from pyspark.sql.functions import *
    
    df.withColum("OFFER_ISAPPLIED",
      when(col("OFFER_NAME").isNull(), "N").otherwise("Y"))
    

    【讨论】:

      【解决方案2】:

      这可能是一个解决方案:

      from pyspark.sql.functions import *
      
      df.select("CUSTOMER_MAILID", "OFFER_NAME" , when(col("OFFER_NAME").isNull(),"N").otherwise("Y").alias("OFFER_ISAPPLIED"))
      

      【讨论】:

      • 请详细说明您的解决方案,以便更好地理解。
      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2021-10-19
      相关资源
      最近更新 更多