【发布时间】:2021-11-22 06:08:28
【问题描述】:
我有一个按月计算的天气历史数据表。
Bangalore 27 65 2021-04
Chennai 30 85 2021-04
Mumbai 31 84 2021-04
Bangalore 27 65 2021-05
Chennai 30 85 2021-05
Mumbai 31 84 2021-05
Bangalore 26 62 2021-06
Chennai 31 88 2021-06
Mumbai 32 89 2021-06
我正在使用 Databricks...我想查看最近上传的月份数据。 (上述情况为2021-06)
这样做的原因是我可以增加年月并摄取下个月的数据。 (示例:2021-06 应递增为 2021-07)
我将在下面的 scala 代码中使用这个参数 yearmonth,稍后将用于提取数据。
%scala
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
val sourceID = dbutils.widgets.get("sourceID")
val split_val = sourceID.split(",")
val sourceIDs = split_val(0)
val measure = split_val(1)
val yearmonth = spark.sql(""" SELECT MAX(snapshot_month) FROM curated_ga.f_clm_segments_raw """)
sql(s"set acquisition_channel = $acquisition_channel")
sql(s"set sourceIDs = $sourceIDs")
sql(s"set measure = $measure")
sql(s"set yearmonth = $yearmonth")
并得到输出:
sourceID: String = 156,ppg
split_val: Array[String] = Array(156, ppg)
sourceIDs: String = 156
measure: String = ppg
yearmonth: org.apache.spark.sql.DataFrame = [max(snapshot_month): string]
acquisition_channel: String = acquisition_channel in ('01','02')
res25: org.apache.spark.sql.DataFrame = [key: string, value: string]
无论如何我可以获得最新的月份,将其增加 1,以便它引用下个月......并将该值存储为 yearmonth。 示例 2021-06 应递增到 2021-07 并存储到 yearmonth。
【问题讨论】:
-
“将该值存储为年月”是什么意思?您是否在数据集中添加了“年月”列?或者你想要一个本地 scala 变量?
标签: sql scala apache-spark databricks