Contents
  1. 1. dim
    1. 1.1. 补数时使用历史版本

dim

补数时使用历史版本

表名增加时间信息 / 增加含时间信息的分区, 通过函数根据时间获取对应的表/分区,默认返回最新版本

以下为表名增加时间信息的示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def getChannelTable(spark: SparkSession, date: String): String = {
val db = "dim"
var result = "channel_tbl" // set with default
import spark.implicits._
spark.sql(s"show tables in ${db} like 'channel_tbl_*'")
.map(_.getString(1))
.filter(tbl => {
val sdf = new SimpleDateFormat("yyyyMMdd")
val items = tbl.split("_")
if (items.length == 4) { // channel_tbl_20210304_20210310
val start = sdf.parse(items(2)).getTime
val end = sdf.parse(items(3)).getTime
val time = sdf.parse(date).getTime
if (time >= start && time <= end) {
true
} else {
false
}
} else {
false
}
}).collect().foreach(tbl => {
result = s"${db}.${tbl}" // update if any match
})
result
}