Spark DataFrame фильтрует временную метку только по части даты - PullRequest
0 голосов
/ 11 января 2020

Как я могу отфильтровать искровой фрейм данных, который имеет столбец типа timestamp, но отфильтрован только по части даты. Я попробовал ниже, но это соответствует, только если время 00: 00: 00.

В основном я хочу, чтобы фильтр соответствовал всем строкам с датой 2020-01-01 (3 строки)

import java.sql.Timestamp

val df = Seq(
  (1, Timestamp.valueOf("2020-01-01 23:00:01")),
  (2, Timestamp.valueOf("2020-01-01 00:00:00")),
  (3, Timestamp.valueOf("2020-01-01 12:54:00")),
  (4, Timestamp.valueOf("2019-12-15 09:54:00")),
  (5, Timestamp.valueOf("2019-12-09 10:12:43"))
).toDF("someCol","someTimeStamp")

df.filter(df("someTimeStamp") === "2020-01-01").show

+-------+-------------------+
|someCol|      someTimeStamp|
+-------+-------------------+
|      2|2020-01-01 00:00:00|   // ONLY MATCHED with time 00:00
+-------+-------------------+

1 Ответ

1 голос
/ 11 января 2020

Используйте функцию to_date для извлечения даты из отметки времени:

scala> df.filter(to_date(df("someTimeStamp")) === "2020-01-01").show
+-------+-------------------+
|someCol|      someTimeStamp|
+-------+-------------------+
|      1|2020-01-01 23:00:01|
|      2|2020-01-01 00:00:00|
|      3|2020-01-01 12:54:00|
+-------+-------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...