Я думаю, что самый простой способ - использовать замену в каждом поле регулярным выражением, которое фиксирует все между {}, и заменить его пустой строкой.
data = [(1, '{product} {number} {number} was purchased on {date} and
returned')]
df = spark.createDataFrame(data, ["ix", "string"])
# here I created a new column called new_col replacing everything
# that matches the regular expression with an empty string
df = df.withColumn('new_col', F.regexp_replace(F.col("string"), "\\{(.*?)\}", ""))
df.show()
Вывод:
+---+--------------------+--------------------+
| ix| string| new_col|
+---+--------------------+--------------------+
| 1|{product} {number...| was purchased ...|
+---+--------------------+--------------------+