Проверьте код ниже, здесь стоимость счета будет представлять собой плавающее число и формат даты, например, вы можете изменить его в соответствии с требованиями.
from pyspark.sql.functions import *
from pyspark.sql.functions import expr
import pyspark.sql.functions as f
df = sc.parallelize([["ThoughtStorm","11/23/2019","$6.09","true"],
["Talane","3/28/2019","£7.20","true"]]).toDF(("company_name","invoice_date","invoice_value","paid"))
df = df.withColumn("invoice_value",regexp_extract(col("invoice_value"), """([0-9]*[.])?[0-9]+""", 0))
df = df.withColumn("invoice_date", f.date_format(f.to_date(f.unix_timestamp(col("invoice_date"), "mm/dd/yyyy").cast("timestamp")), 'yyyy-MM-dd'))
df.show()
+------------+------------+-------------+----+
|company_name|invoice_date|invoice_value|paid|
+------------+------------+-------------+----+
|ThoughtStorm| 2019-01-23| 6.09|true|
| Talane| 2019-01-28| 7.20|true|
+------------+------------+-------------+----+