我正在编写一个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条件。
暂无答案!
目前还没有任何答案,快来回答吧!