Apache spark 在spark sql中检查日期有效性

Apache spark 在spark sql中检查日期有效性,apache-spark,Apache Spark,是否可以在spark SQL中检查日期(YYYYMMDD)是否有效? 我尝试了以下方法: TO_DATE(CAST(UNIX_TIMESTAMP(CAST(UNIX_TIMESTAMP(colname, 'yyyymmdd') AS TIMESTAMP))) IS NOT NULL 谢谢, Bharath您需要使用类似于Natty的日期分析器(取决于您使用的语言)Natty.joestelmach.com 您可以使用Natty(或其他解析器)创建一个解析和验证日期的函数。然后注册可以在Spa

是否可以在spark SQL中检查日期(YYYYMMDD)是否有效? 我尝试了以下方法:

TO_DATE(CAST(UNIX_TIMESTAMP(CAST(UNIX_TIMESTAMP(colname, 'yyyymmdd') AS  TIMESTAMP))) IS NOT NULL
谢谢,
Bharath

您需要使用类似于Natty的日期分析器(取决于您使用的语言)Natty.joestelmach.com

您可以使用Natty(或其他解析器)创建一个解析和验证日期的函数。然后注册可以在Spark SQL中使用的udf

val isValidDate: String => Boolean =//your validation logic here
sqlContext.registerFunction("dateValidate", isValidDate)
sqlContext.sql("SELECT * FROM DF WHERE dateValidate(colname)")

这意味着a)使用Scala,而不是纯Spark SQL,b)构建复杂的验证逻辑,包括闰年之类的东西。真的没有更简单的选择吗?这是目前唯一的选择。将来可能会改变。