验证sql spark java的列

jtoj6r0c  于 2021-05-16  发布在  Spark
关注(0)|答案(1)|浏览(384)

数据库条目:

id: 9
message: {"Start Date":"11-06-2020","End Date":"11-06-2020"}
Group: NULL

id: 10
message: {"Start Date":"11-06-2020","End Date":"11-06-2020"}
Group: NULL

如何验证数据库中的消息列并查看开始日期的格式是否正确?
我的spark java代码:

String sqlQuery="select * from emp"; 
     Dataset<Row> df = spark.read().format("jdbc")
                .option("url", "jdbc:mysql://localhost:3306/employee")
                .option("query",sqlQuery)
                .option("user", "root")
                .option("password", "root")
                .load();
a8jjtwal

a8jjtwal1#

您可以为“message”部分设置一个模式结构,并从中提取开始和结束日期。
您可以创建一个自定义的udf,比如“isvalidtimestamp”,来验证开始和结束时间。

//  Sample code
import datetime
def isValidTimestamp(inputdate):
try:
    datetime.strptime(inputdate, '%Y-%m-%d %H:%M:%S')
    return True
except ValeError:
    return False

此外,您还可以参阅本文档以了解有关spark中时间戳验证的更多信息。
https://databricks.com/blog/2020/07/22/a-comprehensive-look-at-dates-and-timestamps-in-apache-spark-3-0.html

相关问题