Python 在withColumn函数中应用过滤器

Python 在withColumn函数中应用过滤器,python,python-3.x,list,pyspark,apache-spark-sql,Python,Python 3.x,List,Pyspark,Apache Spark Sql,有一个带列的函数,该函数在条件满足时适用。 还有另一个过滤要使用的数据的功能FILTER 我不能把这两者结合起来。以下是我的代码: df = df.withColumn("financial_period",(when(col("Main_flag") == "2", filter(col("financial_period").contains("0630"))).(when(col("

有一个
带列的函数
,该函数在条件满足时适用。 还有另一个过滤要使用的数据的功能
FILTER

我不能把这两者结合起来。以下是我的代码:

df = df.withColumn("financial_period",(when(col("Main_flag") == "2", filter(col("financial_period").contains("0630"))).(when(col("Main_flag") == "1", filter(col("financial_period").contains("0331"))).(when(col("Main_flag") == "3", filter(col("financial_period").contains("0930"))).(when(col("Main_flag") == "4", filter(col("financial_period").contains("1231"))).otherwise("Error"))))))
以下代码起作用:

df = df.filter(col("financial_period").contains("0630")) 
但我想在第二个代码中应用条件


有什么想法吗?

使用apply方法可能有助于解释您的尝试失败的原因,例如,是否导致错误?结果不是如预期的那样吗?