Pyspark PypSpark多工况多工况多工况
我正在处理一些数据,需要运行多个条件,如果这些条件匹配,那么我想计算pyspark中新列的值。如果你们中有人能在这方面帮助我,我将不胜感激Pyspark PypSpark多工况多工况多工况,pyspark,pyspark-sql,Pyspark,Pyspark Sql,我正在处理一些数据,需要运行多个条件,如果这些条件匹配,那么我想计算pyspark中新列的值。如果你们中有人能在这方面帮助我,我将不胜感激 block2.withColumn("Duration", when((col("START_TS")== col("REP_WORK_DAY_TS")) & ((col("END_TS")== col("REP_WORK_DAY_TS")),(unix_timestamp("END_TIME") - unix_timestamp("START_TI
block2.withColumn("Duration", when((col("START_TS")== col("REP_WORK_DAY_TS")) & ((col("END_TS")== col("REP_WORK_DAY_TS")),(unix_timestamp("END_TIME") - unix_timestamp("START_TIME"))))).show(5)
例如,在上面的代码中,我应用了两个条件,然后我想计算从开始到结束的时间戳差异。由于某种原因,我得到一个错误“TypeError:Column不可编辑”。您的括号有问题
block2.withColumn(
"Duration",
when(
( col("START_TS") == col("REP_WORK_DAY_TS") )
& ( col("END_TS") == col("REP_WORK_DAY_TS") ),
(unix_timestamp("END_TIME") - unix_timestamp("START_TIME"))
)
).show(5)
看起来你的括号不匹配。