На мой взгляд, ваша проблема вообще не требует map
.Если вы просто хотите создать новый столбец Was_or_is_Active_Curr_FY
и определить, установлена ли дата прекращения, и если она больше, чем какая-либо другая дата, вы можете использовать withColumn
data_pit.withColumn("Was_or_is_Active_Curr_FY", when((col("Termination_Date").isNull()) | (col("Termination_Date") > datetime.date(2017, 4, 1)), "Y").otherwise("N"))
У меня есть небольшой пример, которыйиспользует разные данные, но делает похожие вещи.Он добавляет столбец с "Y"
и "N"
на основе того факта, что col1
удовлетворяет двум условиям.
test_df = spark.createDataFrame([
(1,"2"),(3,"4"),(10,"11"),
], ("col1","col2"))
test_df.withColumn("your_result", when((col("col1")==1) | (col("col1")==3), "Y").otherwise("N")).show()
#+----+----+-----------+
#|col1|col2|your_result|
#+----+----+-----------+
#| 1| 2| Y|
#| 3| 4| Y|
#| 10| 11| N|
#+----+----+-----------+