Spark-如何获取S3路径的最新小时?

时间:2018-10-03 13:28:37

标签: scala apache-spark amazon-s3 databricks

我正在使用带有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笔记本中实现这一目标?

1 个答案:

答案 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