Я хочу проверить, соответствует ли предоставленная строка в столбце указанному c формату даты.
Например - Требуемый формат даты - MM-dd-yyyy
Input -
col1
2019-01-01
01-01-2019
01-01-19
01-01-201B
Желаемый результат -
col1 |col2
------------|-------------
2019-01-01 |null
01-01-2019 |2019-01-01
01-01-19 |null
01-01-201B |null
, но результат, который я получаю для 3-й и 4-й строк, -
col1 |col2
------------|-------------
01-01-19 |0019-01-01
01-01-201B |0201-01-01
Вот пример кода -
import pyspark.sql.functions as sf
a=[("zxczxc AS OF 2019-01-01",),("asasdwer AS OF 01-01-2019",),("ssadflksad AS OF 01-01-20",),("wrongdt AS OF dt------",),
("again wrgdt AS OF 01-01-201b",),("crct AS OF 01-01-2019 asdasd",),("asasdwer AU 01-01-2019",)]
df = spark.createDataFrame(a,["col1"])
df = df.withColumn("col2",sf.when(sf.instr("col1","AS OF")!=0,sf.col("col1").substr(sf.instr("col1","AS OF")+6,sf.lit(10))).otherwise("-1"))
df = df.withColumn("col3",sf.when(sf.instr("col1","AS OF")!=0,sf.to_date(sf.col("col1").substr(sf.instr("col1","AS OF")+6,sf.lit(10)),"MM-dd-yyyy")).otherwise("-1"))
df.show()