有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

验证sql spark java的列

数据库条目:

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();

共 (1) 个答案

  1. # 1 楼答案

    您可以为“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