代码逻辑:在df中,当字段main_task_id为"0"时,则对字段sub_task_id加前缀"check_",否则取其本身的值
正确代码如下:
df2 = df.withColumn("sub_task_id", when(col("main_task_id") == "0", concat(lit('check_'), col("sub_task_id"))).otherwise(col("sub_task_id")))
通过concat()函数进行字段拼接,通过lit("check_")构建一个字面值列
错误代码如下:
concat('check_', col("sub_task_id"))
直接对字段拼接字符串,会报错pyspark.sql.utils.AnalysisException: u"cannot resolve '`check_`' given input columns: