【发布时间】:2017-07-01 07:21:40
【问题描述】:
我有一个 spark 数据框,其列的日期格式为 dd-MMM-yyyy hh:mm。
如何做TimeRange查询-
查找 2 个日期之间和特定时间范围内的所有行 下午 4 点到凌晨 1 点。
这可以在 sql 中使用 DatePart Specific Time Range Query in SQL Server
如何在 Spark Dataframe 中做同样的事情。
例如,
我想查找 23-MAR-2016 到 25-MAR-2016 之间的所有行, 仅限13:00:00至18:00:00的时间范围内。
所以我必须只得到一行作为结果。
var input = spark.createDataFrame(Seq(
(13L, "Abhi c", "22-MAR-2016 09:10:12"),
(11L, "VF", "23-MAR-2016 16:24:25"),
(12L, "Alice Jones", "24-MAR-2016 19:20:25")
)).toDF("id", "name", "time")
input.filter("time between '23-MAR-2016' and '25-MAR-2016'").show()
+---+-----------+--------------------+
| id| name| time|
+---+-----------+--------------------+
| 11| VF|23-MAR-2016 16:24:25|
| 12|Alice Jones|24-MAR-2016 19:20:25|
+---+-----------+--------------------+
我的上述查询只过滤了日期,甚至我可以给出时间但是如何在每天的时间范围内获取行。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql