Spark中的自定义dateFormat比较

时间:2017-03-30 01:39:30

标签: scala date apache-spark apache-spark-sql

如果输入数据采用不同的格式,我如何在Spark中按日期过滤。

我的数据采用dd-MMM-yy格式 例如:31-Jan-98

这就是我的尝试:

val filteredDate  = ZonedDateTime.now().minusMonths(monthsToFilter).toString()
dataframe.filter(to_date(from_unixtime(unix_timestamp(col(columnName),"dd-M-yy"))).gt(lit(filteredDate)))

即使有数据,过滤后的数据也是空的。

1 个答案:

答案 0 :(得分:0)

这是一个有效的解决方案。也许可以变得更清洁。我很高兴知道这是否可以简化

  override def filterByDate(dataframe: DataFrame,dateFormat: String, columnName: String, monthsToFilter: Int) ): DataFrame = {
    val filteredDate = ZonedDateTime.now().minusMonths(monthsToFilter).toString()
    dataframe.filter(to_date(from_unixtime(unix_timestamp(col(columnName), dateFormat))).gt(to_date(lit(filteredDate))))
  }