spark如何根据不同日期范围的键有效地从Map/查找表中获取值?

xuo3flqw  于 2021-07-14  发布在  Spark
关注(0)|答案(0)|浏览(208)

我正在编写一个spark代码,并通过从两个Map表map1、map2中获取数据来创建一个新列。要求在2020年12月10日前应用map1,2020年12月10日后应用map2。
输入

Map1

Map2

输出

我的代码是这样的

df = input
df = df.join(map1, df["city"] == map1["city1"], "inner")
df = df.join(map2, df["city"] == map1["city2"], "inner")
df = df.withColumn("city_desc", when(col("date") < "2020-12-10", col("desc1")).when(col("date") < "2020-12-10", col("desc2"))

我会得到所需的输出,但这个Map不断得到更新,每当新的表进入图片,然后需要添加一个更多的条件时。有没有什么方法可以有效地处理这个问题,因为我有5亿个数据集,而且每个记录都会经历每一个when条件。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题