gpt4 book ai didi

scala - 如何在 spark scala 的数据框列中验证日期格式

转载 作者:行者123 更新时间:2023-12-01 12:25:18 25 4
gpt4 key购买 nike

我有一个包含一个 DateTime 列和许多其他列的数据框。

我想做的就是解析这个 DateTime 列值并检查格式是否为 "yyyy-MM-dd HH:mm:ss"。如果是这样,那么我希望将这些有效记录放在一个数据框中。

如果 DateTime 列包含格式 "yyyy-MM-dd HH:mm:ss" 以外的任何值。我想要其他数据框中的那些无效记录。

谢谢。

最佳答案

您可以使用filter() 获取dataframe 中的valid/invalid 记录。从 Scala 的角度来看,可以改进此代码。

  val DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"

def validateDf(row: Row): Boolean = try {
//assume row.getString(1) with give Datetime string
java.time.LocalDateTime.parse(row.getString(1), java.time.format.DateTimeFormatter.ofPattern(DATE_TIME_FORMAT))
true
} catch {
case ex: java.time.format.DateTimeParseException => {
// Handle exception if you want
false
}
}



val session = SparkSession.builder
.appName("Validate Dataframe")
.getOrCreate

val df = session. .... //Read from any datasource

import session.implicits._ //implicits provide except() on df

val validDf = df.filter(validateDf(_))
val inValidDf = df.except(validDf)

关于scala - 如何在 spark scala 的数据框列中验证日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40509230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com