You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks中PySpark按时间段提取Timestamp数据失败求助

问题描述

数据类型

  • AAPL_Time: timestamp
  • AAPL_Close: float

原始数据

AAPL_Time                      AAPL_Close
2015-05-11T08:00:00.000+0000   29.0344
2015-05-11T08:30:00.000+0000   29.0187
2015-05-11T09:00:00.000+0000   29.0346
2015-05-11T09:30:00.000+0000   28.763
2015-05-11T10:00:00.000+0000   28.6768
2015-05-11T10:30:00.000+0000   28.7464
2015-05-12T12:30:00.000+0000   28.7915
2015-05-12T13:00:00.000+0000   28.8763
2015-05-12T13:30:00.000+0000   28.8316
2015-05-12T14:00:00.000+0000   28.8418
2015-05-12T14:30:00.000+0000   28.7703

尝试的SQL语句

spark.sql("SELECT AAPL_Time, AAPL_Close FROM aapl_table where AAPL_Time between '%09:30:00%' and '%16:30:00%'")

期望结果

AAPL_Time                      AAPL_Close
2015-05-11T09:30:00.000+0000   28.763
2015-05-11T10:00:00.000+0000   28.6768
2015-05-11T10:30:00.000+0000   28.7464
2015-05-12T12:30:00.000+0000   28.7915
2015-05-12T13:00:00.000+0000   28.8763
2015-05-12T13:30:00.000+0000   28.8316
2015-05-12T14:00:00.000+0000   28.8418
2015-05-12T14:30:00.000+0000   28.7703

实际结果

Query returned no results
解决方案

你的SQL语句错误在于用字符串模糊匹配的方式处理timestamp类型字段,这种写法不符合Spark SQL对时间类型的处理逻辑。要筛选一天中特定时间段的数据,可通过以下几种方式实现:

方法一:提取时分部分做范围判断

spark.sql("""
SELECT AAPL_Time, AAPL_Close 
FROM aapl_table 
WHERE (hour(AAPL_Time) > 9 OR (hour(AAPL_Time) = 9 AND minute(AAPL_Time) >= 30))
  AND (hour(AAPL_Time) < 16 OR (hour(AAPL_Time) = 16 AND minute(AAPL_Time) <= 30))
""")

方法二:转换为时间字符串后匹配

spark.sql("""
SELECT AAPL_Time, AAPL_Close 
FROM aapl_table 
WHERE date_format(AAPL_Time, 'HH:mm:ss') BETWEEN '09:30:00' AND '16:30:00'
""")

方法三:构造完整timestamp范围(针对特定日期)

如果需要限定具体日期的时间段,可构造完整的时间戳范围:

spark.sql("""
SELECT AAPL_Time, AAPL_Close 
FROM aapl_table 
WHERE AAPL_Time BETWEEN to_timestamp('2015-05-11 09:30:00') AND to_timestamp('2015-05-12 16:30:00')
""")

其中方法二更简洁通用,适合筛选任意日期的指定时分范围。


内容的提问来源于stack exchange,提问作者Dicer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 05:06:42