无法使用column属性将新值赋给pysparkDataframe中的列

bd1hkmkf  于 2021-07-09  发布在  Spark
关注(0)|答案(1)|浏览(407)

我有一个Pypark数据框 event1 . 它有许多列,其中一列是 eventAction 具有“转换”、“ checkout ”等分类值。
我想将此列转换为“conversion”变为1,其他类别在中变为0 eventAction 列。
这就是我所尝试的:

event1.eventAction = event1.select(F.when(F.col('eventAction') == 'conversion', 1).otherwise(0))
event1.show()

但我看不到任何变化 eventAction 列何时 .show() 已执行。

ngynwnxp

ngynwnxp1#

sparkDataframe是不可变的,因此不能直接使用 . 符号。您需要创建一个新的dataframe来替换现有的列 withColumn .

import pyspark.sql.functions as F

event1 = event1.withColumn(
    'eventAction', 
    F.when(F.col('eventAction') == 'conversion', 1).otherwise(0)
)

相关问题