我正在使用带有Spark和Scala的Databricks笔记本将数据从S3
读入DataFrame:
myDf = spark.read.parquet(s"s3a://data/metrics/*/*/*/)
。其中*
通配符表示年/月/日。
或者我只是对其进行硬编码:myDf = spark.read.parquet(s"s3a://data/metrics/2018/05/20/)
现在,我想在一天之后添加一个小时参数。这个想法是在最近一个小时内从S3
获取数据。
如果我进行myDf = spark.read.parquet(s"s3a://data/metrics/2018/05/20/*)
,则将获得5月20日所有小时的数据。
如何在不对小时进行硬编码的情况下在Databricks笔记本中实现这一目标?
答案 0 :(得分:1)
使用timedate函数
from datetime import datetime, timedelta
latest_hour = datetime.now() - timedelta(hours = 1)
您还可以按年,月,日,小时对它们进行拆分
latest_hour.year
latest_hour.month
latest_hour.day
latest_hour.hour