Dataframe 如何在Pyspark中验证列的日期格式?
我是Pyspark的新手,我想检查一下该列的日期格式是否正确?我该怎么做?我试过了,虽然我犯了一个错误。有人能帮我吗 我的代码:Dataframe 如何在Pyspark中验证列的日期格式?,dataframe,pyspark,date-format,Dataframe,Pyspark,Date Format,我是Pyspark的新手,我想检查一下该列的日期格式是否正确?我该怎么做?我试过了,虽然我犯了一个错误。有人能帮我吗 我的代码: df = Date name 0 12/12/2020 a 1 24/01/2019 b 2 08/09/2018 c 3 12/24/2020 d 4 Nan e df_out= df.withColumn('output', F.when(F.to_date("Date",&qu
df =
Date name
0 12/12/2020 a
1 24/01/2019 b
2 08/09/2018 c
3 12/24/2020 d
4 Nan e
df_out= df.withColumn('output', F.when(F.to_date("Date","dd/mm/yyyy").isNotNull, Y).otherwise(No))
df_out.show()
给我:
TypeError: condition should be a Column
转换为日期类型后,您可以过滤出行
示例:
df.show()
#+----------+----+
#| Date|name|
#+----------+----+
#|12/12/2020| a|
#|24/01/2019| b|
#|12/24/2020| d|
#| nan| e|
#+----------+----+
from pyspark.sql.functions import *
df.withColumn("output",to_date(col('Date'),'dd/MM/yyyy')).\
filter(col("output").isNotNull()).\
show()
#+----------+----+----------+
#| Date|name| output|
#+----------+----+----------+
#|12/12/2020| a|2020-12-12|
#|24/01/2019| b|2019-01-24|
#+----------+----+----------+
#without adding new column
df.filter(to_date(col('Date'),'dd/MM/yyyy').isNotNull()).show()
#+----------+----+
#| Date|name|
#+----------+----+
#|12/12/2020| a|
#|24/01/2019| b|
#+----------+----+
.isNotNull()
,带有parenthesis@mck我可以写这个来验证日期格式,但是我想避免其中的空行。我该怎么做?df.withColumn(“Output”,F.when(F.to_date(F.col(“date”),“dd/MM/yyyy”)。isNotNull(),False)。否则(True))